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
Post a Comment