I found the cause of the problem by debugging the resin 3.1.3 source code.

The problem is caused by the setPrefix() method in the class 
XMLStreamWriterImpl (the implementation class of XMLStreamWriter). 
Whenever this method is called, by default the namespace will not be 
included in generating the element. I did not look at the Axis2 
implemention of this XMLStreamWriter yet. However, axis2 does not have 
this side effect when the setPrefix() is called. Not sure whether this 
is a bug for resin or not. It would be awesome if resin developers can 
consider this case when they modify XMLStreamWriterImpl class.





Huitang Li wrote:
> Anyone has the answer?
>
> I tested with a public accessible web service, and it has the same 
> result. If you want to test it out, please see the web service 
> http://www.tilisoft.com/ws/LocInfo/ZipCode.asmx
> You can get its wsdl here: 
> http://www.tilisoft.com/ws/LocInfo/ZipCode.asmx?WSDL
> Follow the steps of Axis2 1.3 to generate axis adb client and then test 
> the generated stub code.
>
> It runs ok if the code is not run in resin environment. 
>
> The soap message incorrectly created in resin environment is:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <soapenv:Envelope 
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
> <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
> <ns1:GetDistance>                                             <==  the 
> namespace is missing when the code is run with resin in non-debugging mode.
> ...
> </soapenv:Body>
> </soapenv:Envelope>
>
> The soap message correctly created in resin remote-debugging or when the 
> resin is not involved:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <soapenv:Envelope 
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
> <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
> <ns1:GetDistance 
> xmlns:ns1="http://www.tilisoft.com/ws/LocInfo/literalTypes";>    <== The 
> namespace is correctly put there in remote-debugging resin or non-resin 
> environments.
> ...
> </soapenv:Body>
> </soapenv:Envelope>
>
> So, my question is: how can the soap message be created correctly in 
> resin remote-debugging mode while it is incorrectly created when resin 
> is not running in remote-debugging mode?
>
>
>
> Thanks.
>
>
>
>
> Huitang Li wrote:
>   
>> Hi,
>>
>> I created web service client based on a wsdl. If the web service client 
>> is run in resin 3.1.2 with jdk 1.5.0_10, it threw out the following 
>> exception:
>>
>> org.apache.axis2.AxisFault: org.xml.sax.SAXParseException: The prefix 
>> "ns2" for element "ns2:requestUser" is not bound.
>>     at 
>> org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:486)
>>     at 
>> org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:343)
>>     at 
>> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:389)
>>     at 
>> org.apache.axis2.description.OutInAxisOperationClient$NonBlockingInvocationWorker.run(OutInAxisOperation.java:414)
>>     at 
>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
>>     at 
>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
>>     at java.lang.Thread.run(Thread.java:595)
>>
>> However, when the web service client code is run in unit tests without 
>> the resin running. It works fine. I am not sure whether this exception 
>> is caused by resin or something else.
>>
>> I did google searches for this problem, and found the following posting, 
>> which means that it is more likely a server-related (or j2ee-related) 
>> issue. I do not know whether resin needs to fix something like it or not:
>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6509784
>>
>> If you have experienced something like this before, please let me know 
>> your solution or your findings. Thanks in advance.
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> resin-interest mailing list
>> resin-interest@caucho.com
>> http://maillist.caucho.com/mailman/listinfo/resin-interest
>>   
>>     
>
>
> _______________________________________________
> resin-interest mailing list
> resin-interest@caucho.com
> http://maillist.caucho.com/mailman/listinfo/resin-interest
>   


_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to