jeffty,
try removing the commons-logging and log4j jars from the axis2 war and stick to
PARENT_LAST
-- dims
On 06/21/2009 11:00 AM, jeffty wrote:
Hi dims,
I've tried set parent_last for the applications->axis2->web
module->axis2.war->PARENT_LAST, after that I got the exception:
java.lang.ExceptionInInitializerError
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:79)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java(Compiled
Code))
at java.lang.reflect.Constructor.newInstance(Constructor.java(Compiled Code))
at java.lang.Class.newInstance3(Class.java(Compiled Code))
at java.lang.Class.newInstance(Class.java(Compiled Code))
at java.beans.Beans.instantiate(Beans.java:218)
at java.beans.Beans.instantiate(Beans.java:62)
.....
Caused by: org.apache.commons.logging.LogConfigurationException: The chosen
LogFactory implementation does not extend LogFactory. Please check your
configuration. (Caused by java.lang.ClassCastException: The application has
specified that a custom LogFactory implementation should be used but Class
'com.ibm.ws.commons.logging.TrLogFactory' cannot be converted to
'org.apache.commons.logging.LogFactory'. The conflict is caused by the presence
of multiple LogFactory classes in incompatible classloaders. Background can be
found in http://commons.apache.org/logging/tech.html. If you have not
explicitly specified a custom LogFactory then it is likely that the container
has set one without your knowledge. In this case, consider using the
commons-logging-adapters.jar file or specifying the standard LogFactory from
the command line. Help can be found
@http://commons.apache.org/logging/troubleshooting.html.)
at org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1271)
at org.apache.commons.logging.LogFactory$2.run(LogFactory.java:1065)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.commons.logging.LogFactory.newFactory(LogFactory.java:1062)
at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:612)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
at at
org.apache.axis2.transport.http.AxisServlet.<clinit>(AxisServlet.java:78).null(Unknown
Source)
... 61 more
Caused by: java.lang.ClassCastException: The application has specified that a
custom LogFactory implementation should be used but Class
'com.ibm.ws.commons.logging.TrLogFactory' cannot be converted to
'org.apache.commons.logging.LogFactory'. The conflict is caused by the presence
of multiple LogFactory classes in incompatible classloaders. Background can be
found in http://commons.apache.org/logging/tech.html. If you have not
explicitly specified a custom LogFactory then it is likely that the container
has set one without your knowledge. In this case, consider using the
commons-logging-adapters.jar file or specifying the standard LogFactory from
the command line. Help can be found
@http://commons.apache.org/logging/troubleshooting.html.
at org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1220)
... 67 more
And if I reset it as PARENT_FIRST, I got the exception I mentioned before:
javax.servlet.ServletException: javax.xml.namespace.QName:
method<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V not found
at
com.ibm.ws.webcontainer.servlet.StrictServletInstance.doInit(StrictServletInstance.java:99)
at
com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._init(StrictLifecycleServlet.java:147)
at
com.ibm.ws.webcontainer.servlet.PreInitializedServletState.init(StrictLifecycleServlet.java:270)
at
com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.init(StrictLifecycleServlet.java:113)
at
com.ibm.ws.webcontainer.servlet.ServletInstance.init(ServletInstance.java:189)
.....
Thanks.
Regards
Jeffty
----- Original Message -----
From: "Davanum Srinivas"<[email protected]>
To:<[email protected]>
Cc:<[email protected]>
Sent: Sunday, June 21, 2009 10:36 PM
Subject: Re: axis2 on webshpere response != axis2 on glassfish response........
why?
Jeffty,
Did you try PARENT_LAST?
You may want to try asking websphere specific questions on this forum:
http://www.ibm.com/developerworks/forums/forum.jspa?forumID=266&start=0
-- dims
On 06/21/2009 09:39 AM, jeffty wrote:
Hello xedus,
I wonder how do you deploy axis2 in websphere. I've tried to deploy the
war file of axis2 1.3, 1.4 and 1.41 on Websphere 5.1 and failed every time.
I only got such exceptions:
javax.servlet.ServletException: javax.xml.namespace.QName:
method<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V not found
at
com.ibm.ws.webcontainer.servlet.StrictServletInstance.doInit(StrictServletInstance.java:99)
at
com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._init(StrictLifecycleServlet.java:147)
at
com.ibm.ws.webcontainer.servlet.PreInitializedServletState.init(StrictLifecycleServlet.java:270)
at
com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.init(StrictLifecycleServlet.java:113)
at
com.ibm.ws.webcontainer.servlet.ServletInstance.init(ServletInstance.java:189)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
....
I set parent last setting on the axis2.war file in the server. But it
doesn't work.
Any information is appreciated, thanks a lot.
Regards
Jeffty
----- Original Message -----
From: "xedus"<[email protected]>
To:<[email protected]>
Sent: Sunday, June 21, 2009 4:29 PM
Subject: axis2 on webshpere response != axis2 on glassfish response........ why?
i have a web service deployed to axis2 on websphere and the same web service
deployed to axis2 on glassfish v2.
the client is a desktop application generated and written in C# using
VS2003.
the client works well with the service on websphere which it was originally
designed for. but not with the service on glassfish.
the WSDL generated for both services is exactly the same.
i noticed that the response generated from the service on web sphere has the
xmlns on every attribute
this is not true for the same service on axis2 on glassfish.
this is the response message from the service on axis2 on websphere:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:getPrintJobResponse xmlns:ns="http://myService/xsd">
<ns:return>
<bookingRef xmlns="http://myService/xsd">XXXXXX7730000010001</bookingRef>
<jobID xmlns="http://myService/xsd">209572</jobID>
<printerName xmlns="http://myService/xsd">NAME</printerName>
<qty xmlns="http://myService/xsd">3</qty>
</ns:return>
</ns:getPrintJobResponse>
</soapenv:Body>
</soapenv:Envelope>
notice that xmlns value appears in all the properties (bookingRef, jobID,
printerName, qty).
and here is the same response from axis2 on glassfish
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:getPrintJobResponse xmlns:ns="http://myService/xsd">
<ns:return>
<bookingRef xmlns="http://myService/xsd">XXXXXX7730000010001</bookingRef>
<jobID>209552</jobID>
<printerName>NAME</printerName>
<qty>15</qty>
</ns:return>
</ns:getPrintJobResponse>
</soapenv:Body>
</soapenv:Envelope>
notice that only the bookingRef has the xmlns
my service is a POJO without any annotations. it is wrapped as .aar
my questions...
A. why is this happening although i'm deploying to a common denominator on
both app. servers which is the axis2.war ?
B. how do i make the response from glassfish matches the one from webshpere?
where do i have to change and what?
please note that i can't change he client code so my only bid is to make
it work on glassfish as it was working on websphere.
--
View this message in context:
http://www.nabble.com/axis2-on-webshpere-response-%21%3D-axis2-on-glassfish-response........-why--tp24132443p24132443.html
Sent from the Axis - User mailing list archive at Nabble.com.
>