[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
Tue May 3 16:01:22 EDT 2011


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

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

Ok... I think I have this working much better now, though it still doesn't handle the extremely ugly Ebay WSDL well. 

For the sample with all the ugly namespaces and nested/mixed schemas, I now generate this:

<?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:Header>
</soap:Header>
<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 the original WSDL reported for this JIRA looks like this now:

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

And the parts.wsdl associated with JBIDE-8770 looks like this with the SOAP header:

<?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:Header>
  <squa:storeHeader xmlns:squa="http://www.example.org/ws/square/">
    <id>?</id>
    <timestamp>?</timestamp>
  </squa:storeHeader>
</soap:Header>
<soap:Body>
  <basi:operationRequest xmlns:basi="http://www.example.org/ws/basic/">
    <a>?</a>
    <b>?</b>
  </basi:operationRequest>
</soap:Body>
</soap:Envelope>

> 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