diff --git a/calendar/pom.xml b/calendar/pom.xml
index 6034afe..01fe3fe 100644
--- a/calendar/pom.xml
+++ b/calendar/pom.xml
@@ -29,7 +29,8 @@
     <artifactId>onos-app-calendar</artifactId>
     <packaging>bundle</packaging>
 
-    <description>ONOS simple calendaring REST interface for intents</description>
+    <description>ONOS simple calendaring REST interface for intents
+    </description>
 
     <properties>
         <onos.app.name>org.onosproject.calendar</onos.app.name>
@@ -48,39 +49,39 @@
         </dependency>
 
         <dependency>
-            <groupId>com.sun.jersey</groupId>
-            <artifactId>jersey-servlet</artifactId>
+            <groupId>org.glassfish.jersey.containers</groupId>
+            <artifactId>jersey-container-servlet</artifactId>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>org.osgi.core</artifactId>
         </dependency>
 
-    <dependency>
-      <groupId>org.onosproject</groupId>
-      <artifactId>onlab-thirdparty</artifactId>
-    </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onlab-thirdparty</artifactId>
+        </dependency>
 
-    <dependency>
-      <groupId>org.onosproject</groupId>
-      <artifactId>onlab-misc</artifactId>
-    </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onlab-misc</artifactId>
+        </dependency>
 
-    <dependency>
-      <groupId>org.onosproject</groupId>
-      <artifactId>onlab-junit</artifactId>
-      <scope>test</scope>
-    </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onlab-junit</artifactId>
+            <scope>test</scope>
+        </dependency>
 
-    <dependency>
-      <groupId>org.onosproject</groupId>
-      <artifactId>onos-cli</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.karaf.shell</groupId>
-      <artifactId>org.apache.karaf.shell.console</artifactId>
-    </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-cli</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.karaf.shell</groupId>
+            <artifactId>org.apache.karaf.shell.console</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
@@ -99,9 +100,8 @@
                             org.slf4j,
                             org.osgi.framework,
                             javax.ws.rs,javax.ws.rs.core,
-                            com.sun.jersey.api.core,
-                            com.sun.jersey.spi.container.servlet,
-                            com.sun.jersey.server.impl.container.servlet,
+                            org.glassfish.jersey,
+                            org.glassfish.jersey.servlet,
                             org.onlab.packet.*,
                             org.onlab.rest.*,
                             org.onosproject.*
diff --git a/calendar/src/main/java/org/onosproject/calendar/BandwidthCalendarResource.java b/calendar/src/main/java/org/onosproject/calendar/BandwidthCalendarResource.java
index c86b185..5b61ad0 100644
--- a/calendar/src/main/java/org/onosproject/calendar/BandwidthCalendarResource.java
+++ b/calendar/src/main/java/org/onosproject/calendar/BandwidthCalendarResource.java
@@ -44,6 +44,7 @@
 import javax.ws.rs.DELETE;
 import javax.ws.rs.POST;
 import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.core.Response;
 import java.net.URI;
@@ -62,7 +63,7 @@
 /**
  * Web resource for triggering calendared intents.
  */
-@javax.ws.rs.Path("intent")
+@Path("intent")
 public class BandwidthCalendarResource extends BaseResource {
 
     private static final Logger log = getLogger(BandwidthCalendarResource.class);
@@ -86,7 +87,7 @@
      * @return intent key if successful,
      *         server error message or "FAILED" if failed to create or submit intent
      */
-    @javax.ws.rs.Path("/{src}/{dst}/{srcPort}/{dstPort}/{bandwidth}/{latency}")
+    @Path("/{src}/{dst}/{srcPort}/{dstPort}/{bandwidth}/{latency}")
     @POST
     // TODO could allow applications to provide optional key
     // ... if you do, you will need to change from LongKeys to StringKeys
@@ -138,7 +139,7 @@
      * @return Intent state, "INSTALLED", if successful,
      *         server error message or "FAILED" if failed to modify any direction intent
      */
-    @javax.ws.rs.Path("/{intentKey}/{src}/{dst}/{srcPort}/{dstPort}/{bandwidth}")
+    @Path("/{intentKey}/{src}/{dst}/{srcPort}/{dstPort}/{bandwidth}")
     @PUT
     public Response modifyBandwidth(@PathParam("intentKey") String intentKey,
                                     @PathParam("src") String src,
@@ -285,7 +286,7 @@
      * @return Intent state, "WITHDRAWN", if successful,
      *         server error message or FAILED" if any direction intent remove failed
      */
-    @javax.ws.rs.Path("/{intentKey}")
+    @Path("/{intentKey}")
     @DELETE
     public Response removePath(@PathParam("intentKey") String intentKey) {
 
diff --git a/calendar/src/main/webapp/WEB-INF/web.xml b/calendar/src/main/webapp/WEB-INF/web.xml
index 1a7de2b..55777d8 100644
--- a/calendar/src/main/webapp/WEB-INF/web.xml
+++ b/calendar/src/main/webapp/WEB-INF/web.xml
@@ -22,13 +22,9 @@
 
     <servlet>
         <servlet-name>JAX-RS Service</servlet-name>
-        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
+        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
         <init-param>
-            <param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
-            <param-value>com.sun.jersey.api.core.ClassNamesResourceConfig</param-value>
-        </init-param>
-        <init-param>
-            <param-name>com.sun.jersey.config.property.classnames</param-name>
+            <param-name>jersey.config.server.provider.classnames</param-name>
             <param-value>org.onosproject.calendar.BandwidthCalendarResource</param-value>
         </init-param>
         <load-on-startup>10</load-on-startup>
diff --git a/tvue/pom.xml b/tvue/pom.xml
index e0862f8..3af4864 100644
--- a/tvue/pom.xml
+++ b/tvue/pom.xml
@@ -48,8 +48,8 @@
         </dependency>
 
         <dependency>
-            <groupId>com.sun.jersey</groupId>
-            <artifactId>jersey-servlet</artifactId>
+            <groupId>org.glassfish.jersey.containers</groupId>
+            <artifactId>jersey-container-servlet</artifactId>
         </dependency>
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
@@ -82,9 +82,8 @@
                         <Import-Package>
                             org.osgi.framework,
                             javax.ws.rs,javax.ws.rs.core,
-                            com.sun.jersey.api.core,
-                            com.sun.jersey.spi.container.servlet,
-                            com.sun.jersey.server.impl.container.servlet,
+                            org.glassfish.jersey,
+                            org.glassfish.jersey.servlet,
                             com.fasterxml.jackson.databind,
                             com.fasterxml.jackson.databind.node,
                             org.onlab.packet.*,
diff --git a/tvue/src/main/java/org/onosproject/tvue/TopologyResource.java b/tvue/src/main/java/org/onosproject/tvue/TopologyResource.java
index 9ace27d..b8a68c9 100644
--- a/tvue/src/main/java/org/onosproject/tvue/TopologyResource.java
+++ b/tvue/src/main/java/org/onosproject/tvue/TopologyResource.java
@@ -18,6 +18,8 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import org.onlab.packet.IpAddress;
+import org.onlab.rest.BaseResource;
 import org.onosproject.net.ConnectPoint;
 import org.onosproject.net.ElementId;
 import org.onosproject.net.Host;
@@ -31,8 +33,6 @@
 import org.onosproject.net.topology.TopologyGraph;
 import org.onosproject.net.topology.TopologyService;
 import org.onosproject.net.topology.TopologyVertex;
-import org.onlab.packet.IpAddress;
-import org.onlab.rest.BaseResource;
 
 import javax.ws.rs.GET;
 import javax.ws.rs.PathParam;
@@ -219,5 +219,4 @@
     private static String id(ConnectPoint cp) {
         return cp.elementId().toString();
     }
-
 }
diff --git a/tvue/src/main/webapp/WEB-INF/web.xml b/tvue/src/main/webapp/WEB-INF/web.xml
index 0c02e09..4ffeb26 100644
--- a/tvue/src/main/webapp/WEB-INF/web.xml
+++ b/tvue/src/main/webapp/WEB-INF/web.xml
@@ -26,15 +26,11 @@
 
     <servlet>
         <servlet-name>JAX-RS Service</servlet-name>
-        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
-        <init-param>
-            <param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
-            <param-value>com.sun.jersey.api.core.ClassNamesResourceConfig</param-value>
-        </init-param>
+        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
         <init-param>
             <!--param-name>com.sun.jersey.config.property.packages</param-name>
             <param-value>org.onosproject.tvue</param-value-->
-            <param-name>com.sun.jersey.config.property.classnames</param-name>
+            <param-name>jersey.config.server.provider.classnames</param-name>
             <param-value>org.onosproject.tvue.TopologyResource</param-value>
         </init-param>
         <load-on-startup>10</load-on-startup>
