geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bdaye <java.linebac...@gmail.com>
Subject Re: jaxws-api-2.1 Classloading
Date Wed, 30 Jan 2008 18:01:08 GMT

OK, if I remove the lines from the artifact_aliases.properties file, Geronimo
will fail to load.  However, if I rename the jaxws-api-2.1 jar to
axis2-jaxws-api-1.3 (the name of the jar in org/apache/axis2/jaxws-api),
Geronimo will start.  So it appears that Geronimo jee-specs is looking for a
specific file name.  If I run it, it will throw an AbstractMethodError:

12:21:44,734 ERROR [OpenEJB] The bean instances business method encountered
a system exception:
javax.xml.ws.spi.ServiceDelegate.createDispatch(Ljavax/xml/namespace/QName;Ljavax/xml/bind/JAXBContext;Ljavax/xml/ws/Service$Mode;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Dispatch;
java.lang.AbstractMethodError:
javax.xml.ws.spi.ServiceDelegate.createDispatch(Ljavax/xml/namespace/QName;Ljavax/xml/bind/JAXBContext;Ljavax/xml/ws/Service$Mode;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Dispatch;
	at javax.xml.ws.Service.createDispatch(Service.java:494)

I believe the reason it is doing this is because it is still using the axis2
implementation of the jaxws-api.  So, I'm thinking I need to replace the
axis2-jaxws impl with the jaxws-rt-2.1 implementation, leaving everything
named the same but with the newer jars.  This doesn't seem practical at all. 
So, where do I stand now?


Joe Bohn wrote:
> 
> bdaye wrote:
>> The EJB needs to use the jaxws-api-2.1 jar to run successfully.  I have
>> attempted to follow the given instructions...
>> 
>> I have removed the axis2-jaxws-api from the geronimo repo.  I have added
>> the
>> jaxws-api-2.1 jar to the geronimo repo and added the supplied lines to
>> the
>> artifact_aliases.properties file (of course changing the location of the
>> jaxws-api jar).  Geronimo will not start, here is the trace:
> 
> 
> Try it without adding the new lines to the artifact_aliases.properties 
> file.  If the version is not specified for dependencies (which we 
> usually attempt to do) it should resolve to the 2.1 jar.
> 
> I had a similar problem when I was attempting to override another jar in 
> 2.0.2.  When I removed the entries from artifact-aliases it worked.
> 
> Joe
> 
> 
>> 
>> 08:54:15,468 ERROR [GBeanInstanceState] Error while starting; GBean is
>> now
>> in the FAILED state:
>> abstractName="org.apache.geronimo.configs/jee-specs/2.0.2/car?configurationName=org.apache.geronimo.configs/jee-specs/2.0.2/car"
>> org.apache.geronimo.kernel.repository.MissingDependencyException: Unable
>> to
>> resolve dependency org.apache.axis2/axis2-jaxws-api/1.3/jar
>> 	at
>> org.apache.geronimo.kernel.config.ConfigurationResolver.resolve(ConfigurationResolver.java:114)
>> 	at
>> org.apache.geronimo.kernel.config.Configuration.buildClassPath(Configuration.java:405)
>> 	at
>> org.apache.geronimo.kernel.config.Configuration.createConfigurationClasssLoader(Configuration.java:322)
>> 	at
>> org.apache.geronimo.kernel.config.Configuration.<init>(Configuration.java:267)
>> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>> 	at
>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>> 	at
>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
>> 	at
>> org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:946)
>> 	at
>> org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:268)
>> 	at
>> org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
>> 	at
>> org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:539)
>> 	at
>> org.apache.geronimo.kernel.basic.BasicKernel.startGBean(BasicKernel.java:361)
>> 	at
>> org.apache.geronimo.kernel.config.KernelConfigurationManager.load(KernelConfigurationManager.java:160)
>> 	at
>> org.apache.geronimo.kernel.config.SimpleConfigurationManager.loadConfiguration(SimpleConfigurationManager.java:310)
>> 	at
>> org.apache.geronimo.kernel.config.SimpleConfigurationManager.loadConfiguration(SimpleConfigurationManager.java:278)
>> 	at
>> org.apache.geronimo.kernel.config.SimpleConfigurationManager$$FastClassByCGLIB$$ce77a924.invoke(<generated>)
>> 	at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>> 	at
>> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
>> 	at
>> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
>> 	at
>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:830)
>> 	at
>> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
>> 	at
>> org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
>> 	at
>> org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
>> 	at
>> org.apache.geronimo.kernel.config.EditableConfigurationManager$$EnhancerByCGLIB$$2c64bbf.loadConfiguration(<generated>)
>> 	at
>> org.apache.geronimo.system.main.EmbeddedDaemon.doStartup(EmbeddedDaemon.java:153)
>> 	at
>> org.apache.geronimo.system.main.EmbeddedDaemon.execute(EmbeddedDaemon.java:78)
>> 	at
>> org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.main(MainConfigurationBootstrapper.java:45)
>> 	at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:67)
>> 	at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:30)
>> 
>> 
>> 
>> 
>> djencks wrote:
>>> Are you trying to use our copy of axis2 or cxf or are you trying to  
>>> use some jaxws implementation you are supplying yourself?
>>>
>>> I think that you may have trouble since AFAIK we are required in java  
>>> ee  to support jaxws 2.0 which IIUC is not completely compatible with  
>>> jaxws 2.1.
>>>
>>> What I would try is:
>>>
>>> remove the axis2-jaxws-api jar to be sure it doesn't get used by  
>>> mistake :-)
>>> put the jaxws-api-2.1 jar in an appropriate place in the geronimo  
>>> repo, say com/sun/specs/jaxws-api/2.1/jaxws-api-2.1.jar
>>> add lines to var/config/artifact_aliases.properties mapping the jar  
>>> we provide to the jar you want:
>>>
>>> org.apache.axis2/axis2-jaxws-api//jar=com.sun.specs/jaxws-api/2.1/jar
>>> org.apache.axis2/axis2-jaxws-api/1.3/jar=com.sun.specs/jaxws-api/2.1/jar
>>>
>>> This should replace the axis jar with your jar in the jee-specs  
>>> classloader, and as long as there are no incompatible class changes  
>>> everything should work.
>>>
>>> Hope this helps and please let us know the results
>>>
>>> thanks
>>> david jencks
>>>
>>>
>>> On Jan 29, 2008, at 2:56 PM, Jon wrote:
>>>
>>>> Hello,
>>>>
>>>> I am trying to get an EJB to work correctly within Geronimo.  I  
>>>> seem to be having a classloader issue.  The jaxws-api-2.1 jar is in  
>>>> my EAR file.  I need for my EJB to use the jaxws-api-2.1 jar and  
>>>> not the javax.xml.ws.* classes found in the axis2-jaxws-api  
>>>> module.  The axis2-jaxws-api jar uses older classes that do not  
>>>> support the Service.createDispatch(EndpointReference, JAXBContext,  
>>>> Mode, WebServiceFeature...) method.  I have tried changing the  
>>>> jaxws provider to CXF and still no luck because it seems that they  
>>>> both hit the same underlying jar.  In the 2.0.2 Geronimo build, you  
>>>> can find the jar at {geronimo.home}/repository/org/apache/axis2/ 
>>>> axis2-jaxws-api/1.3.  I have tried to incorporate other  
>>>> configuration found in the deployment-1.2 schema including inverse- 
>>>> classloading and hidden-classes (supplying filter javax.xml.ws and  
>>>> javax.xml.ws.spi).  If I drop the jaxws-api-2.1 jar into the  
>>>> Geronimo endorsed dir, it explodes.  If anyone has any suggestions  
>>>> as to how I can get the EJB to work correctly using the jaxws-api  
>>>> 2.1 jar, I would really appreciate it.
>>>>
>>>> -Brandon
>>>
>>>
>> 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/jaxws-api-2.1-Classloading-tp15173009s134p15188072.html
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.


Mime
View raw message