[jbosstools-issues] [JBoss JIRA] Commented: (JBDS-1602) Web Service Tester generates SOAP bodies that cause marshaling issues

Brian Fitzpatrick (JIRA) jira-events at lists.jboss.org
Mon May 2 17:32:18 EDT 2011


    [ https://issues.jboss.org/browse/JBDS-1602?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12599502#comment-12599502 ] 

Brian Fitzpatrick commented on JBDS-1602:
-----------------------------------------

Amazingly enough, I've reworked how the whole sample message generator works and it now addresses deeper schemas as well as the namespace problems.

The sample wsdl with all the namespaces now generates this in the WS Tester:

<?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>
<test:echo xmlns:test="http://test/">
<!-- optional -->
<test:arg0  xmlns:x="http://example.com/attr/x" x:C="?"  xmlns:y="http://example.com/attr/y" y:D="?" >
<a:A xmlns:a="http://example.com/ws/a">
</a:A>
<b:B xmlns:b="http://example.com/ws/b">
</b:B>
<!-- optional -->
<othe:OtherType  xmlns:othe="http://example.com/attr/other" othe:myid="?"  x:Y="?" >
<!-- optional -->
<b:description>
</b:description>
</othe:OtherType>
</test:arg0>
</test:echo>
</soap:Body>
</soap:Envelope>

And this for the stock quote example:

<?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>
<stoc:getStockQuoteBySymbol xmlns:stoc="http://www.jboss.com/webservices/StockQuoteService">
<!-- optional -->
<arg0>
</arg0>
</stoc:getStockQuoteBySymbol>
</soap:Body>
</soap:Envelope>

My question now is this... Obviously I'm introducing a namespace prefix declaration at the level in which it is first introduced in the schema hierarchy. It's a bit ugly if you look at the first example in this comment, but it should work I believe. 

Do I need to find a way to clean this up and shove the namespace prefix declarations into the operation tag? I believe I have a solution, but am open to suggestions. At this point, I'm just happy I can process these bigger, uglier schema/WSDL combinations!!

> 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.CR1
>
>         Attachments: jbds-1602-partial.patch, Jira - JBDS-1602.zip, testerutils.diff
>
>   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


More information about the jbosstools-issues mailing list