You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geronimo.apache.org by Jon <ja...@gmail.com> on 2008/01/29 23:56:07 UTC
jaxws-api-2.1 Classloading
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
Re: jaxws-api-2.1 Classloading
Posted by bdaye <ja...@gmail.com>.
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.
Re: jaxws-api-2.1 Classloading
Posted by Joe Bohn <jo...@earthlink.net>.
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
>>
>>
>
Re: jaxws-api-2.1 Classloading
Posted by bdaye <ja...@gmail.com>.
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:
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-tp15173009s134p15182988.html
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.
Re: jaxws-api-2.1 Classloading
Posted by David Jencks <da...@yahoo.com>.
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