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.