You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by Rajkumar Dhadwad <ra...@yahoo.co.in.INVALID> on 2018/07/08 15:58:48 UTC
ClientBuilder is not getting at runtime in OSGI
Hi This is RK,
I have Embedded javax.ws.rs-api to resolved dependency in the OSGi felix plugin bundle but at runtime not getting ClientBuilder class.
At runtime when control goes to ClientBuilder.newClient(); getting below exception:
1.
Caused by: java.lang.ClassNotFoundException: javax.ws.rs.client.ClientBuilder
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333).
Actually the classes embedded in the below pom.xml not getting at runtime.
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.4.0</version>
<extensions>true</extensions>
<configuration>
<instructions>
<System-Ids>xxxx</System-Ids>
<Bundle-SymbolicName>com.XXXX.${project.artifactId}</Bundle-SymbolicName>
<Bundle-Name>${project.name}</Bundle-Name>
<Bundle-Version>${project.version}</Bundle-Version>
<AutoStart>true</AutoStart>
<Embed-Dependency>jackson-annotations,jackson-core,jackson-databind,javax.ws.rs-api,joda-convert,joda-time,codemodel,*;scope=runtime</Embed-Dependency>
<Embed-Directory>embed</Embed-Directory>
<Embed-Transitive>false</Embed-Transitive>
<Import-Package>
sun.nio.cs.*;resolution:=optional,
com.sun.xml.ws.api.message;version="1.5",
com.sun.xml.internal.ws.api.message;version="1.5",
com.sun.xml.bind;version="1.5",
*;resolution:=required
</Import-Package>
</instructions>
</configuration>
</plugin>
2. also I have added javax.ws.rs-api 2.1 to WEB-INF/lib folder then its giving
Caused by: java.lang.LinkageError: ClassCastException: attempting to castjar:file:/C:/DEV/Workspaces/XXXX1.6.0Release/XXXX-OOO/platform/target/XXXX/WEB-INF/lib/javax.ws.rs-api-2.1.jar!/javax/ws/rs/client/ClientBuilder.class to bundle://21.0:5/javax/ws/rs/client/ClientBuilder.class
at javax.ws.rs.client.ClientBuilder.newBuilder(ClientBuilder.java:105)
Could you please suggest me the correct implementation or solution?
Please find below pom.xml
pom.xml:
<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/maven-v4_0_0.xsd">
<parent>
<groupId>com.OOO.xxxx</groupId>
<artifactId>modules</artifactId>
<version>1.6.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>xxxx-OOO-ngestart</artifactId>
<packaging>bundle</packaging>
<name>OOO Next Generation eStart Integration Plugin</name>
<description>OSGi Plugin for integration</description>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<profiles>
<profile>
<id>env-dev</id>
<activation>
<property>
<name>env</name>
<value>dev</value>
</property>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<resources>
<resource>
<directory>src/main/env/dev/resources</directory>
</resource>
</resources>
</build>
</profile>
<profile>
<id>env-prod</id>
<activation>
<property>
<name>env</name>
<value>prod</value>
</property>
</activation>
<build>
<resources>
<resource>
<directory>src/main/env/prod/resources</directory>
</resource>
</resources>
</build>
</profile>
</profiles>
<dependencies>
<!-- RAML -->
<!-- https://mvnrepository.com/artifact/org.mule.raml.codegen/raml-client-generator-core -->
<dependency>
<groupId>org.mule.raml.codegen</groupId>
<artifactId>raml-client-generator-core</artifactId>
<version>0.2</version>
</dependency>
<dependency>
<groupId>org.mule.raml.codegen</groupId>
<artifactId>raml-client-generator-maven-plugin</artifactId>
<version>0.2</version>
</dependency>
<dependency>
<groupId>org.raml</groupId>
<artifactId>raml-to-pojo</artifactId>
<version>1.0.2-SNAPSHOT</version>
</dependency>
<!-- <dependency> <groupId>org.raml</groupId> <artifactId>raml-to-pojo-maven-plugin</artifactId> <version>1.0.2-SNAPSHOT</version> </dependency> -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>provided</scope>
</dependency>
<!-- OSGi -->
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.compendium</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.ds-annotations</artifactId>
<scope>provided</scope>
</dependency>
<!-- Wicket -->
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-extensions</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-spring</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.joda</groupId>
<artifactId>joda-convert</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.sun.codemodel/codemodel -->
<dependency>
<groupId>com.sun.codemodel</groupId>
<artifactId>codemodel</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.1</version>
</dependency>
<!-- <dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.26</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>2.26</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.26</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-jaxb</artifactId>
<version>2.26</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-binding</artifactId>
<version>2.26</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.26</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.24</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
<version>2.26</version>
</dependency>
<dependency>
<groupId>org.glassfish.hk2</groupId>
<artifactId>hk2-api</artifactId>
<version>2.5.0-b42</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.bundles.repackaged</groupId>
<artifactId>jersey-guava</artifactId>
<version>2.24</version>
</dependency> -->
<!-- com.XXXX -->
<dependency>
<groupId>com.XXXX.common</groupId>
<artifactId>XXXX.plugin-core</artifactId>
<scope>provided</scope>
</dependency>
<!--<dependency> -->
<!--<groupId>com.XXXX.xxxx</groupId> -->
<!--<artifactId>xxxx-common-pdk</artifactId> -->
<!--<version>${xxxx_VERSION}</version> -->
<!--<scope>provided</scope> -->
<!--</dependency> -->
<dependency>
<groupId>com.XXXX.xxxx</groupId>
<artifactId>xxxx-common-core-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.XXXX.xxxx</groupId>
<artifactId>xxxx-common-core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.XXXX.common</groupId>
<artifactId>XXXX.plugin-wicket</artifactId>
</dependency>
<dependency>
<groupId>com.XXXX.xxxx</groupId>
<artifactId>xxxx-common-event</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.XXXX.xxxx</groupId>
<artifactId>xxxx-common-plugin-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.XXXX.xxxx</groupId>
<artifactId>xxxx-runtime-backend-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.XXXX.xxxx</groupId>
<artifactId>xxxx-common-ui</artifactId>
<scope>provided</scope>
</dependency>
<!-- Logging -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<scope>provided</scope>
</dependency>
<!-- JUNIT DEPENDENCY FOR TESTING -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.XXXX.xxxx</groupId>
<artifactId>xxxx-common-testbase</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>microsoft</groupId>
<artifactId>sqljdbc4</artifactId>
<scope>test</scope>
</dependency>
<!-- <dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>webservices-rt</artifactId> <version>1.5</version> </dependency> -->
</dependencies>
<build>
<resources>
<resource>
<filtering>false</filtering>
<directory>src/main/resources</directory>
</resource>
<resource>
<filtering>false</filtering>
<directory>src/main/java</directory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<testResources>
<testResource>
<filtering>false</filtering>
<directory>src/test/resources</directory>
<excludes>
<exclude>**/~$*</exclude>
</excludes>
</testResource>
<testResource>
<filtering>false</filtering>
<directory>src/test/java</directory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<!-- OSGi declarative services annotation plugin -->
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-scr-plugin</artifactId>
<version>1.22.0</version>
<executions>
<execution>
<id>generate-scr-scrdescriptor</id>
<goals>
<goal>scr</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- OSGi bundle plugin -->
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.4.0</version>
<extensions>true</extensions>
<configuration>
<instructions>
<System-Ids>xxxx</System-Ids>
<Bundle-SymbolicName>com.XXXX.${project.artifactId}</Bundle-SymbolicName>
<Bundle-Name>${project.name}</Bundle-Name>
<Bundle-Version>${project.version}</Bundle-Version>
<AutoStart>true</AutoStart>
<!-- Embed-Dependency>webservices-rt</Embed-Dependency -->
<!-- <Embed-Dependency>jackson-annotations</Embed-Dependency> <Embed-Dependency>jackson-core</Embed-Dependency> <Embed-Dependency>jackson-databind</Embed-Dependency> -->
<Embed-Dependency>jackson-annotations,jackson-core,jackson-databind,javax.ws.rs-api,joda-convert,joda-time,codemodel,*;scope=runtime</Embed-Dependency>
<Embed-Directory>embed</Embed-Directory>
<Embed-Transitive>false</Embed-Transitive>
<Import-Package>
sun.nio.cs.*;resolution:=optional,
com.sun.xml.ws.api.message;version="1.5",
com.sun.xml.internal.ws.api.message;version="1.5",
com.sun.xml.bind;version="1.5",
*;resolution:=required
</Import-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project>
I have used the
Thanks,
RK