[
https://issues.jboss.org/browse/JBDS-1602?page=com.atlassian.jira.plugin....
]
Lukas Jungmann commented on JBDS-1602:
--------------------------------------
The problem here is that tester does not handle XML schema's elementFormDefault
attribute correctly.
Currently it generates:
...
<soap:Body>
<getStockQuoteBySymbol xmlns =
"http://www.jboss.com/webservices/StockQuoteService">
<arg0>?</arg0>
</getStockQuoteBySymbol>
</soap:Body>
...
which is wrong since according to xml namespace inheritance rules arg0 element belongs to
"http://www.jboss.com/webservices/StockQuoteService" namespace whereas in xml
schema, there is defined that it should be in default/no namespace (some ws-stacks with
disabled(?) xml message validation can handle this)
For elementFormDefault="unqualified" (default value) the generated message
should be:
...
<soap:Body>
<ns1:getStockQuoteBySymbol xmlns:ns1 =
"http://www.jboss.com/webservices/StockQuoteService">
<arg0>?</arg0>
</ns1:getStockQuoteBySymbol>
</soap:Body>
...
and for elementFormDefault="qualified" it should be:
...
<soap:Body>
<ns1:getStockQuoteBySymbol xmlns:ns1 =
"http://www.jboss.com/webservices/StockQuoteService">
<ns1:arg0>?</ns1:arg0>
</ns1:getStockQuoteBySymbol>
</soap:Body>
...
I attached a patch which should fix this issue for WSDL files I have around (contains also
a fix for test, which needs to be applied).
There are still these TODO's:
1) I did not touch code where I can not get (in the other words only code I know I can
reach was fixed - code coverage was used to find such code)
2) it may happen that message contains elements from more than one namespace - attached
patch assumes that there's only one namespace (test case is needed for fixing this)
3) usage of XML Schema's attributeFormDefault attribute may cause similar issue -
attached patch does not take this into account
Web Service Tester generates SOAP bodies that cause marshaling
issues
---------------------------------------------------------------------
Key: JBDS-1602
URL:
https://issues.jboss.org/browse/JBDS-1602
Project: Developer Studio (JBoss Developer Studio)
Issue Type: Bug
Affects Versions: 4.0.0.GA
Environment: JBoss Developer Studio 4.0.0 on Mac OS X 10.6.6
Reporter: Bill Meyer
Assignee: Brian Fitzpatrick
Fix For: 4.1.0.GA
Attachments: jbds-1602-partial.patch, Jira - JBDS-1602.zip
Original Estimate: 0 minutes
Remaining Estimate: 0 minutes
Open JBDS 4, go to Window -> Show View -> Other -> Web Service Tester.
If I enter my WSDL and select the appropriate Service, Port, and Operation (there's
only 1), the SOAP Body gets filled in as:
<?xml version="1.0" encoding="utf-8" standalone="yes"
?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
<soap:Body>
<getStockQuoteBySymbol xmlns =
"http://www.jboss.com/webservices/StockQuoteService">
<arg0>?</arg0>
</getStockQuoteBySymbol>
</soap:Body>
</soap:Envelope>
which seems to cause the operation invocation to choke with a NullPointerException. It
appears to be a problem with unmarshalling on the Web Service side. Interesting note is
that soapUI causes the same behavior when I copy the above SOAP envelope into soapUI and
execute the call.
If I change the SOAP envelope by moving the operation namespace to the top of the XML
body:
<?xml version="1.0" encoding="utf-8" standalone="yes"
?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:stoc = "http://www.jboss.com/webservices/StockQuoteService" >
<soap:Body>
<stoc:getStockQuoteBySymbol>
<arg0>?</arg0>
</stoc:getStockQuoteBySymbol>
</soap:Body>
</soap:Envelope>
Everything executes perfectly. So, I am assuming that the Web Service Tester is
generating a SOAP Body that results in a failed web service invocation. I've tried
this with a few different web services (String and float args) and they all fail the
same.
I am trying to invoke a JAX-WS based web service. I have tried an ASMX-based web service
up on
webservicex.net (
http://www.webservicex.net/stockquote.asmx?WSDL) and not had the
same issue.
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira