diff --git a/apps/fpcagent/BUCK b/apps/fpcagent/BUCK
index b9dfc95..0d12c11 100644
--- a/apps/fpcagent/BUCK
+++ b/apps/fpcagent/BUCK
@@ -13,11 +13,12 @@
     '//apps/restconf/api:onos-apps-restconf-api',
     '//models/fpcagent:onos-models-fpcagent',
     '//models/common:onos-models-common',
-    ':jetty-servlet',
-    ':jetty-server',
-    ':jetty-io',
-    ':jetty-http',
-    ':jetty-util',
+    '//lib:jetty-servlet',
+    '//lib:jetty-server',
+    '//lib:jetty-security',
+    '//lib:jetty-io',
+    '//lib:jetty-http',
+    '//lib:jetty-util',
     '//lib:javax.servlet-api',
     ':zeromq',
     ':json',
@@ -34,11 +35,12 @@
     '//lib:httpcore-osgi',
     '//lib:org.apache.httpcomponents.httpasyncclient-osgi',
     '//lib:javax.servlet-api',
-    ':jetty-servlet',
-    ':jetty-server',
-    ':jetty-io',
-    ':jetty-http',
-    ':jetty-util',
+    '//lib:jetty-servlet',
+    '//lib:jetty-security',
+    '//lib:jetty-server',
+    '//lib:jetty-io',
+    '//lib:jetty-http',
+    '//lib:jetty-util',
 ]
 
 EXCLUDED_BUNDLES = [
@@ -69,6 +71,7 @@
     required_apps = APPS,
     included_bundles = BUNDLES,
     excluded_bundles = EXCLUDED_BUNDLES,
+    web_context = '/',
 )
 
 remote_jar (
@@ -89,48 +92,3 @@
   visibility = [ 'PUBLIC' ],
 )
 
-remote_jar (
-  name = 'jetty-util',
-  out = 'jetty-util-8.1.19.v20160209.jar',
-  url = 'mvn:org.eclipse.jetty:jetty-util:jar:8.1.19.v20160209',
-  sha1 = 'c88071e72998e6355d719d35ff001d9c327a971a',
-  maven_coords = 'org.eclipse.jetty:jetty-util:8.1.19.v20160209',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jetty-server',
-  out = 'jetty-server-8.1.19.v20160209.jar',
-  url = 'mvn:org.eclipse.jetty:jetty-server:jar:8.1.19.v20160209',
-  sha1 = 'e4100696c994e26148fd0b62c8a866a606be1540',
-  maven_coords = 'org.eclipse.jetty:jetty-server:8.1.19.v20160209',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jetty-servlet',
-  out = 'jetty-servlet-8.1.19.v20160209.jar',
-  url = 'mvn:org.eclipse.jetty:jetty-servlet:jar:8.1.19.v20160209',
-  sha1 = '6872c3fc289de8f26a43b101741b33af36590cb4',
-  maven_coords = 'org.eclipse.jetty:jetty-servlet:8.1.19.v20160209',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jetty-http',
-  out = 'jetty-http-8.1.19.v20160209.jar',
-  url = 'mvn:org.eclipse.jetty:jetty-http:jar:8.1.19.v20160209',
-  sha1 = 'f08c189eab9a45810644ec35440f1a0c8aa0c4e0',
-  maven_coords = 'org.eclipse.jetty:jetty-http:8.1.19.v20160209',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jetty-io',
-  out = 'jetty-io-8.1.19.v20160209.jar',
-  url = 'mvn:org.eclipse.jetty:jetty-io:jar:8.1.19.v20160209',
-  sha1 = 'c35e77e419169b4c8ad5fa3429865f2c8541e972',
-  maven_coords = 'org.eclipse.jetty:jetty-io:8.1.19.v20160209',
-  visibility = [ 'PUBLIC' ],
-)
-
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/JettyServer.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/JettyServer.java
index cf4e0ae..e6d11d1 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/JettyServer.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/JettyServer.java
@@ -9,7 +9,6 @@
 
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.servlet.DefaultServlet;
 import org.eclipse.jetty.servlet.ServletContextHandler;
 import org.eclipse.jetty.servlet.ServletHolder;
 import org.slf4j.Logger;
@@ -48,7 +47,7 @@
                 ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
                 context.setContextPath("/");
 
-                context.addServlet(new ServletHolder(EventServer.class), "/response");
+                context.addServlet(new ServletHolder(ResponseServer.class), "/response");
                 context.addServlet(new ServletHolder(NotificationServer.class), "/notification");
 
                 server.setHandler(context);
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/NotificationServer.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/NotificationServer.java
index a67eb41..6dde315 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/NotificationServer.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/NotificationServer.java
@@ -16,8 +16,7 @@
 
 import javax.servlet.AsyncContext;
 import javax.servlet.ServletContext;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
+import javax.servlet.annotation.WebServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
@@ -29,8 +28,14 @@
 /**
  * A HTTP servlet that handles requests for notification streams
  */
-public class NotificationServer extends HttpServlet {
-    private static final Logger log = LoggerFactory.getLogger(EventServer.class);
+@WebServlet(name = "notification", urlPatterns = {"/notification"})
+public class NotificationServer extends DefaultServlet {
+    private static final Logger log = LoggerFactory.getLogger(ResponseServer.class);
+
+    public NotificationServer() {
+        super();
+        log.info("Notification Server Initialized");
+    }
 
     @Override
     protected void doGet(HttpServletRequest request, HttpServletResponse response) {
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/EventClient.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseClient.java
similarity index 96%
rename from apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/EventClient.java
rename to apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseClient.java
index 88b0201..76762d8 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/EventClient.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseClient.java
@@ -26,8 +26,8 @@
 /**
  * A HTTP client that sends a request to a FPC Client to initiate the request stream.
  */
-public class EventClient {
-    private static final Logger log = LoggerFactory.getLogger(EventClient.class);
+public class ResponseClient {
+    private static final Logger log = LoggerFactory.getLogger(ResponseClient.class);
 
     private static final CloseableHttpAsyncClient client = HttpAsyncClients.createDefault();
     private static ArrayList<String> clientUriList = new ArrayList<String>();
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/EventServer.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseServer.java
similarity index 91%
rename from apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/EventServer.java
rename to apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseServer.java
index 611c8dd..cea0e76 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/EventServer.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseServer.java
@@ -16,8 +16,7 @@
 
 import javax.servlet.AsyncContext;
 import javax.servlet.ServletContext;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
+import javax.servlet.annotation.WebServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
@@ -30,10 +29,16 @@
 /**
  * A Http Servlet to server response streams
  */
-public class EventServer extends HttpServlet {
-    private static final Logger log = LoggerFactory.getLogger(EventServer.class);
+@WebServlet(name = "response", urlPatterns = {"/response"})
+public class ResponseServer extends DefaultServlet {
+    private static final Logger log = LoggerFactory.getLogger(ResponseServer.class);
     private static ArrayList<String> clientUriList = new ArrayList<String>();
 
+    public ResponseServer() {
+        super();
+        log.info("Response Server Initialized");
+    }
+
     /**
      * Method for stream initialization
      *
@@ -46,7 +51,7 @@
         try {
             HttpSession session = request.getSession();
             session.setMaxInactiveInterval(72 * 60 * 60);
-            EventClient client = new EventClient();
+            ResponseClient client = new ResponseClient();
             client.connectToClient(clientUri);
             response.setHeader("Content-Type", "text/event-stream");
             response.setHeader("Cache-Control", "no-cache, no-store");
diff --git a/apps/fpcagent/src/main/webapp/WEB-INF/web.xml b/apps/fpcagent/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..0798925
--- /dev/null
+++ b/apps/fpcagent/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright 2015-present Open Networking Foundation
+  ~ Originally created by Pengfei Lu, Network and Cloud Computing Laboratory, Dalian University of Technology, China
+  ~ Advisers: Keqiu Li and Heng Qi
+  ~ This work is supported by the State Key Program of National Natural Science of China(Grant No. 61432002)
+  ~ and Prospective Research Project on Future Networks in Jiangsu Future Networks Innovation Institute.
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
+         xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+         id="ONOS" version="2.5">
+    <display-name>FPC Agent API</display-name>
+
+    <security-constraint>
+        <web-resource-collection>
+            <web-resource-name>Secured</web-resource-name>
+            <url-pattern>/*</url-pattern>
+        </web-resource-collection>
+        <auth-constraint>
+            <role-name>admin</role-name>
+        </auth-constraint>
+    </security-constraint>
+
+    <security-role>
+        <role-name>admin</role-name>
+    </security-role>
+
+    <login-config>
+        <auth-method>BASIC</auth-method>
+        <realm-name>karaf</realm-name>
+    </login-config>
+
+    <servlet>
+        <servlet-name>Notification Service</servlet-name>
+        <servlet-class>org.eclipse.jetty.server.</servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+
+    <servlet-mapping>
+        <servlet-name>Notification Service</servlet-name>
+        <url-pattern>/notification</url-pattern>
+    </servlet-mapping>
+
+    <servlet>
+        <servlet-name>Response Service</servlet-name>
+        <servlet-class>org.onosproject.fpcagent.util.eventStream.ResponseServer</servlet-class>
+        <load-on-startup>2</load-on-startup>
+    </servlet>
+
+    <servlet-mapping>
+        <servlet-name>Response Service</servlet-name>
+        <url-pattern>/response</url-pattern>
+    </servlet-mapping>
+
+</web-app>
