jax rs - Integrating Swagger 2.0 with Glassfish 4.1 OSGi REST project -


do need include jax-rs , httpservlet jars integrate swagger 2.0 jax-rs project?

i trying present restful services developed in following specifications:

  • java
  • netbeans ide 8.0.2 [maven]
  • osgi 4.2
  • the project exchanges information in json format
  • glassfish 4.1
  • jax-rs 2.0
  • jersey 2.0

the project deploys onto glassfish, when of rest services called, throws error 404. server log complains class loading errors, javax.ws.rs.* (despite javax.ws.rs-api being provided), , produces java.lang.noclassdeffounderror: javax/ws/rs/core/application

pom.xml -- maven bundle plugin

<plugin>               <groupid>org.apache.felix</groupid>               <artifactid>maven-bundle-plugin</artifactid>               <version>2.5.4</version>               <extensions>true</extensions>               <configuration>                   <supportedprojecttypes>                       <supportedprojecttype>ejb</supportedprojecttype>                       <supportedprojecttype>war</supportedprojecttype>                       <supportedprojecttype>bundle</supportedprojecttype>                       <supportedprojecttype>jar</supportedprojecttype>                   </supportedprojecttypes>                   <instructions>                       <!-- specify elements add manifest.mf -->                          <web-contextpath>/sample</web-contextpath>                       <!-- default, nothing exported -->                          <!--<export-package>!*.impl.*, *</export-package>-->                          <import-package>                              !com.sun*;resolution:=optional,                              !javassist*;resolution:=optional,                              !groovy*;resolution:=optional,                              !javax.microedition*;resolution:=optional,                              !org.apache*;resolution:=optional,                              !org.codehaus*;resolution:=optional,                              !nu.xom;resolution:=optional,                              !org*;resolution:=optional,*                          </import-package>                          <bundle-classpath>.,web-inf/classes,web-inf/lib/slf4j-api-1.7.12.jar,web-inf/lib/slf4j-jdk14-1.7.12.jar,{maven-dependencies}</bundle-classpath>                          <embed-dependency>                              annotations,asm-all-repackaged,cglib,                              aopalliance-repackaged,commons-lang3,commons-vfs2,                              dom4j,gson,guava,                              hk2-api,hk2-locator,hk2-utils,                              jackson-core,jackson-annotations,jackson-databind,                              jackson-dataformat-yaml,jackson-dataformat-xml,                              jackson-datatype-joda,jackson-jaxrs-base,                              jackson-jaxrs-json-provider,                              jackson-module-jaxb-annotations,                              javaee-web-api,                              javassist,                              javax.ws.rs-api,                              javax.annotation-api,javax.inject,javax.json-api,                              javax.servlet-api,                              jaxen,jaxb-api,                              jersey-client,jersey-common,jersey-server,                              jersey-container-servlet-core,                              jersey-media-multipart,                              joda-convert,joda-time,jsch,jsr311-api,jzlib,                              logback-classic,logback-core,                              mongo-java-driver,maven,mimepull,                              org.apache.felix.scr.annotations,                              org.apache.servicemix.bundles.commons-httpclient,                              org.osgi.compendium,org.osgi.core,                              osgi-cdi-api,osgi-resource-locator,                              pull-parser,reflections,                              slf4j-api,slf4j-jdk14,                              snakeyaml,stax2-api,                              swagger-annotations,swagger-core,swagger-jaxrs,                              swagger-jersey2-jaxrs,swagger-models,                              validation-api;                              scope=compile|runtime;                          </embed-dependency>                          <embed-transitive>true</embed-transitive>                   </instructions>               </configuration>               <executions>                   <execution>                       <id>bundle-manifest</id>                       <phase>process-classes</phase>                       <goals>                           <goal>manifest</goal>                       </goals>                   </execution>                   <execution>                       <id>bundle-install</id>                       <phase>install</phase>                       <goals>                           <goal>install</goal>                       </goals>                   </execution>               </executions>             </plugin> 

work done far:

  • updated glassfish 4.1 include jersey 2 & jax-rs 2
  • all jersey-glassfish dependencies marked "provided"
  • resolved duplicate dependencies

make sure javax.ws.rs.* packages provided system bundle. can connect osgi module management subsystem of glassfish using felix gogo remote shell , query registry using built-in commands.


Comments