Hi,

  I'm struggling with the dreaded java.lang.LinkageError. Here's what I'm
trying to do. Bundle A consists of a class TestA which is calling a method
in class TestB, hosted in Bundle B. As part of the method call, TestA is
passing a Solrj class (org.apache.solr.common.SolrInputDocument) to TestB.
Here's the pom configuration.

Bundle B pom
==========

<plugin>
                                <groupId>org.apache.felix</groupId>
                                <artifactId>maven-bundle-plugin</artifactId>
                                <version>2.0.1</version>
                                <extensions>true</extensions>
                                <configuration>
                                        <instructions>
                                                
<Export-Package>com.test.solr.api;version=1.1.0,
                                                        
org.apache.solr.common.*,
                                                        org.apache.solr.client,
                                                        
org.apache.solr.client.solrj;
                                                </Export-Package>
                                                <Import-Package>
                                                        
com.test.model.*;version="[1.0.0,2.0.0)",
                                                        *;resolution:=optional
                                                </Import-Package>
                                        
<Embed-Dependency>solr-solrj,zookeeper,httpcore,httpmime,httpclient,commons-collections,commons-lang,commons-collections,commons-io,commons-logging;scope=compile|runtime</Embed-Dependency>
                                                
<Embed-Transitive>true</Embed-Transitive>
                                                
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                                                
<Bundle-Version>${project.version}</Bundle-Version>
                                                
<Bundle-ClassPath>.,{maven-dependencies}</Bundle-ClassPath>
                                                <Include-Resource>
                                                        {maven-resources}, 
{maven-dependencies}
                                                </Include-Resource>
                                        </instructions>
                                </configuration>
                        </plugin>


Bundle A pom
==========

<plugin>
                                <groupId>org.apache.felix</groupId>
                                <artifactId>maven-bundle-plugin</artifactId>
                                <version>2.0.1</version>
                                <extensions>true</extensions>
                                <configuration>
                                        <instructions>
                                                
<Export-Package>com.test.postprocess.api;version="[1.0.0,2.0.0)",
                                                </Export-Package>
                                                
<Import-Package>com.test.solr.api;version="[1.0.0,2.0.0)",
                                                        javax.jws,
                                                        javax.wsdl,
                                                        javax.xml.bind,
                                                        
javax.xml.bind.annotation,
                                                        javax.xml.namespace,
                                                        javax.xml.ws,
                                                        META-INF.cxf,
                                                        META-INF.cxf.osgi,
                                                        org.apache.cxf.bus,
                                                        
org.apache.cxf.bus.spring,
                                                        
org.apache.cxf.bus.resource,
                                                        
org.apache.cxf.configuration.spring,
                                                        org.apache.cxf.resource,
                                                        org.apache.cxf.jaxws,
                                                        
org.apache.cxf.transport.http,
                                                        !org.jvnet.staxex,
                                                        !org.relaxng.datatype,
                                                        !com.sun.javadoc,
                                                        !com.caucho.burlap.*,
                                                        org.apache.solr.*,
                                                        org.w3c.dom,
                                                        org.apache.xpath.jaxp,
                                                        *;resolution:=optional
                                                </Import-Package>               
                                
                                        
<Embed-Dependency>commons-codec,xstream,commons-io,httpcore,httpclient,httpmime;scope=compile|runtime</Embed-Dependency>
                                                
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                                                
<Bundle-Version>${project.version}</Bundle-Version>
                                                
<Bundle-ClassPath>.,{maven-dependencies}</Bundle-ClassPath>
                                                <Include-Resource>
                                                        {maven-resources}, 
{maven-dependencies}
                                                </Include-Resource>
                                        </instructions>
                                </configuration>
                        </plugin>

As you can see, I'm exporting org.apache.solr.common.*,
org.apache.solr.client and                              
org.apache.solr.client.solrj package in
bundle B, which is being imported in bundle A.

But I'm getting the following runtime exception.

 java.lang.LinkageError: loader constraint violation: loader (instance of
org/apache/felix/framework/ModuleImpl$ModuleClassLoaderJava5) previously
initiated loading for a different type with name
"org/apache/solr/common/SolrInputDocument"

Not sure what I'm missing. I'm using servicemix 4.4.0.

Any pointer will be highly appreciated.

-Thanks,
Shamik




--
View this message in context: 
http://servicemix.396122.n5.nabble.com/Dreaded-java-lang-LinkageError-tp5718754.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to