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