Note that there are some explanatory texts on larger screens.

plurals
  1. POIssue in starting the bundle in Felix.missing requirement [5.0] osgi.wiring.package; (osgi.wiring.package=com.sun.jersey.api.core)
    primarykey
    data
    text
    <p>I am using maven-bundle-plugin to build a war file as a bundle which I would like to deploy in Felix. Here is the POM file for the same.</p> <pre><code>&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&gt; &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt; &lt;parent&gt; &lt;groupId&gt;net.java&lt;/groupId&gt; &lt;artifactId&gt;jvnet-parent&lt;/artifactId&gt; &lt;version&gt;1&lt;/version&gt; &lt;/parent&gt; &lt;groupId&gt;com.sun.jersey.samples.helloworld-osgi-webapp&lt;/groupId&gt; &lt;artifactId&gt;war-bundle&lt;/artifactId&gt; &lt;version&gt;1.11&lt;/version&gt; &lt;name&gt;Helloworld OSGi WebApp - Jersey Sample WAR&lt;/name&gt; &lt;packaging&gt;war&lt;/packaging&gt; &lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;javax.servlet&lt;/groupId&gt; &lt;artifactId&gt;servlet-api&lt;/artifactId&gt; &lt;version&gt;2.5&lt;/version&gt; &lt;!-- &lt;scope&gt;provided&lt;/scope&gt; --&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.osgi&lt;/groupId&gt; &lt;artifactId&gt;org.osgi.core&lt;/artifactId&gt; &lt;version&gt;4.2.0&lt;/version&gt; &lt;!-- &lt;scope&gt;provided&lt;/scope&gt; --&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.osgi&lt;/groupId&gt; &lt;artifactId&gt;org.osgi.compendium&lt;/artifactId&gt; &lt;version&gt;4.2.0&lt;/version&gt; &lt;!-- &lt;scope&gt;provided&lt;/scope&gt; --&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;com.sun.jersey&lt;/groupId&gt; &lt;artifactId&gt;jersey-core&lt;/artifactId&gt; &lt;version&gt;${project.version}&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;com.sun.jersey&lt;/groupId&gt; &lt;artifactId&gt;jersey-server&lt;/artifactId&gt; &lt;version&gt;${project.version}&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.codehaus.jettison&lt;/groupId&gt; &lt;artifactId&gt;jettison&lt;/artifactId&gt; &lt;version&gt;1.1&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.codehaus.jackson&lt;/groupId&gt; &lt;artifactId&gt;jackson-core-asl&lt;/artifactId&gt; &lt;version&gt;1.5.5&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.codehaus.jackson&lt;/groupId&gt; &lt;artifactId&gt;jackson-mapper-asl&lt;/artifactId&gt; &lt;version&gt;1.5.5&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.codehaus.jackson&lt;/groupId&gt; &lt;artifactId&gt;jackson-jaxrs&lt;/artifactId&gt; &lt;version&gt;1.5.5&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.codehaus.jackson&lt;/groupId&gt; &lt;artifactId&gt;jackson-xc&lt;/artifactId&gt; &lt;version&gt;1.5.5&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;junit&lt;/groupId&gt; &lt;artifactId&gt;junit&lt;/artifactId&gt; &lt;version&gt;3.8.1&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.felix&lt;/groupId&gt; &lt;artifactId&gt;org.apache.felix.http.api&lt;/artifactId&gt; &lt;version&gt;2.0.4&lt;/version&gt; &lt;/dependency&gt; &lt;/dependencies&gt; &lt;build&gt; &lt;plugins&gt; &lt;plugin&gt; &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt; &lt;inherited&gt;true&lt;/inherited&gt; &lt;configuration&gt; &lt;source&gt;1.6&lt;/source&gt; &lt;target&gt;1.6&lt;/target&gt; &lt;/configuration&gt; &lt;/plugin&gt; &lt;plugin&gt; &lt;groupId&gt;org.apache.felix&lt;/groupId&gt; &lt;artifactId&gt;maven-bundle-plugin&lt;/artifactId&gt; &lt;extensions&gt;true&lt;/extensions&gt; &lt;executions&gt; &lt;execution&gt; &lt;id&gt;bundle-manifest&lt;/id&gt; &lt;phase&gt;process-classes&lt;/phase&gt; &lt;goals&gt; &lt;goal&gt;manifest&lt;/goal&gt; &lt;/goals&gt; &lt;/execution&gt; &lt;/executions&gt; &lt;configuration&gt; &lt;manifestLocation&gt;${project.build.directory}/META-INF&lt;/manifestLocation&gt; &lt;supportedProjectTypes&gt; &lt;supportedProjectType&gt;bundle&lt;/supportedProjectType&gt; &lt;supportedProjectType&gt;war&lt;/supportedProjectType&gt; &lt;/supportedProjectTypes&gt; &lt;instructions&gt; &lt;Bundle-SymbolicName&gt;${pom.artifactId}&lt;/Bundle-SymbolicName&gt; &lt;Import-Package&gt;com.sun.jersey.api.core,com.sun.jersey.spi.container.servlet,*&lt;/Import-Package&gt; &lt;Export-Package&gt;com.sun.jersey.samples.helloworld&lt;/Export-Package&gt; &lt;Webapp-Context&gt;jersyweb&lt;/Webapp-Context&gt; &lt;Web-ContextPath&gt;jersyweb&lt;/Web-ContextPath&gt; &lt;Bundle-Activator&gt;com.sun.jersey.samples.helloworld.WebAppContextListener&lt;/Bundle-Activator&gt; &lt;Bundle-ClassPath&gt;WEB-INF/classes&lt;/Bundle-ClassPath&gt; &lt;Embed-Dependency&gt;*;scope=compile|runtime;inline=false&lt;/Embed-Dependency&gt; &lt;Embed-Transitive&gt;true&lt;/Embed-Transitive&gt; &lt;/instructions&gt; &lt;/configuration&gt; &lt;/plugin&gt; &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; &lt;artifactId&gt;maven-war-plugin&lt;/artifactId&gt; &lt;version&gt;2.1-alpha-2&lt;/version&gt; &lt;configuration&gt; &lt;attachClasses&gt;true&lt;/attachClasses&gt; &lt;archive&gt; &lt;manifestFile&gt;${project.build.directory}/META-INF/MANIFEST.MF&lt;/manifestFile&gt; &lt;manifestEntries&gt; &lt;Bundle-ClassPath&gt;WEB-INF/classes&lt;/Bundle-ClassPath&gt; &lt;/manifestEntries&gt; &lt;/archive&gt; &lt;/configuration&gt; &lt;/plugin&gt; &lt;/plugins&gt; &lt;pluginManagement&gt; &lt;plugins&gt; &lt;!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--&gt; &lt;plugin&gt; &lt;groupId&gt;org.eclipse.m2e&lt;/groupId&gt; &lt;artifactId&gt;lifecycle-mapping&lt;/artifactId&gt; &lt;version&gt;1.0.0&lt;/version&gt; &lt;configuration&gt; &lt;lifecycleMappingMetadata&gt; &lt;pluginExecutions&gt; &lt;pluginExecution&gt; &lt;pluginExecutionFilter&gt; &lt;groupId&gt; org.apache.felix &lt;/groupId&gt; &lt;artifactId&gt; maven-bundle-plugin &lt;/artifactId&gt; &lt;versionRange&gt; [2.0.1,) &lt;/versionRange&gt; &lt;goals&gt; &lt;goal&gt;manifest&lt;/goal&gt; &lt;/goals&gt; &lt;/pluginExecutionFilter&gt; &lt;action&gt; &lt;ignore&gt;&lt;/ignore&gt; &lt;/action&gt; &lt;/pluginExecution&gt; &lt;pluginExecution&gt; &lt;pluginExecutionFilter&gt; &lt;groupId&gt; org.jvnet.jaxb2.maven2 &lt;/groupId&gt; &lt;artifactId&gt; maven-jaxb2-plugin &lt;/artifactId&gt; &lt;versionRange&gt; [0.8.1,) &lt;/versionRange&gt; &lt;goals&gt; &lt;goal&gt;generate&lt;/goal&gt; &lt;/goals&gt; &lt;/pluginExecutionFilter&gt; &lt;action&gt; &lt;ignore&gt;&lt;/ignore&gt; &lt;/action&gt; &lt;/pluginExecution&gt; &lt;/pluginExecutions&gt; &lt;/lifecycleMappingMetadata&gt; &lt;/configuration&gt; &lt;/plugin&gt; &lt;/plugins&gt; &lt;/pluginManagement&gt; &lt;/build&gt; </code></pre> <p></p> <p>When I build it using maven install, I can see a logically correct MANIFEST.MF file in the META-INF folder of the war bundle. Here is MANIFEST.MF.</p> <pre><code>**Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Created-By: Apache Maven Bundle Plugin Built-By: parag.ki Build-Jdk: 1.6.0_18 Bundle-ClassPath: WEB-INF/classes,servlet-api-2.5.jar,org.osgi.core-4. 2.0.jar,org.osgi.compendium-4.2.0.jar,jersey-core-1.11.jar,jersey-ser ver-1.11.jar,asm-3.1.jar,jettison-1.1.jar,stax-api-1.0.1.jar,jackson- core-asl-1.5.5.jar,jackson-mapper-asl-1.5.5.jar,jackson-jaxrs-1.5.5.j ar,jackson-xc-1.5.5.jar,org.apache.felix.http.api-2.0.4.jar Bnd-LastModified: 1333436962460 Bundle-Activator: com.sun.jersey.samples.helloworld.WebAppContextListe ner Bundle-Description: Java.net - The Source for Java Technology Collabor ation Bundle-ManifestVersion: 2 Bundle-Name: Helloworld OSGi WebApp - Jersey Sample WAR Bundle-SymbolicName: war-bundle Bundle-Version: 1.11.0 Embed-Dependency: *;scope=compile|runtime;inline=false Embed-Transitive: true Embedded-Artifacts: servlet-api-2.5.jar;g="javax.servlet";a="servlet-a pi";v="2.5",org.osgi.core-4.2.0.jar;g="org.osgi";a="org.osgi.core";v= "4.2.0",org.osgi.compendium-4.2.0.jar;g="org.osgi";a="org.osgi.compen dium";v="4.2.0",jersey-core-1.11.jar;g="com.sun.jersey";a="jersey-cor e";v="1.11",jersey-server-1.11.jar;g="com.sun.jersey";a="jersey-serve r";v="1.11",asm-3.1.jar;g="asm";a="asm";v="3.1",jettison-1.1.jar;g="o rg.codehaus.jettison";a="jettison";v="1.1",stax-api-1.0.1.jar;g="stax ";a="stax-api";v="1.0.1",jackson-core-asl-1.5.5.jar;g="org.codehaus.j ackson";a="jackson-core-asl";v="1.5.5",jackson-mapper-asl-1.5.5.jar;g ="org.codehaus.jackson";a="jackson-mapper-asl";v="1.5.5",jackson-jaxr s-1.5.5.jar;g="org.codehaus.jackson";a="jackson-jaxrs";v="1.5.5",jack son-xc-1.5.5.jar;g="org.codehaus.jackson";a="jackson-xc";v="1.5.5",or g.apache.felix.http.api-2.0.4.jar;g="org.apache.felix";a="org.apache. felix.http.api";v="2.0.4" Import-Package: com.sun.jersey.api.core,com.sun.jersey.samples.hellowo rld,com.sun.jersey.spi.container.servlet,com.sun.net.httpserver,javax .activation,javax.annotation.security,javax.imageio,javax.imageio.spi ,javax.imageio.stream,javax.mail,javax.mail.internet,javax.mail.util, javax.microedition.io,javax.naming,javax.security.auth.x500,javax.xml .bind,javax.xml.bind.annotation,javax.xml.bind.annotation.adapters,ja vax.xml.datatype,javax.xml.parsers,javax.xml.transform,javax.xml.tran sform.dom,javax.xml.transform.sax,javax.xml.transform.stream,org.joda .time,org.joda.time.format,org.w3c.dom,org.w3c.dom.bootstrap,org.w3c. dom.ls,org.xml.sax Tool: Bnd-1.50.0 Web-ContextPath: jersyweb Webapp-Context: jersyweb** </code></pre> <p>But when I deploy it in Apache Felix and start it, I see following error.</p> <p><strong>g! org.osgi.framework.BundleException: Unresolved constraint in bundle war-bundle [5]: Unable to resolve 5.0: missing requirement [5.0] osgi.wiring.package; (osgi.wiring.package=com.sun.jersey.api.core)</strong></p> <p>Package com.sun.jersey.api.core is part of jersey-core-1.11.jar which is already there mentioned in Bundle-ClassPath in MANIFEST.MF then why do I get this error?</p> <p>If I start putting respective bundle file like bundle for jersey-core-1.11.jar then issue is resolved but I do not see it as a very good solution. In fact for this purpose only maven bundle plugin provided and tags.</p> <p>Please advice.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload