[
https://issues.apache.org/jira/browse/TUSCANY-3571?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Simon Laws updated TUSCANY-3571:
--------------------------------
Fix Version/s: Java-SCA-1.x
> binding.ws producing different results depending on whether WSDL is supplied
> or WSDL is generated
> -------------------------------------------------------------------------------------------------
>
> Key: TUSCANY-3571
> URL: https://issues.apache.org/jira/browse/TUSCANY-3571
> Project: Tuscany
> Issue Type: Bug
> Affects Versions: Java-SCA-1.6
> Environment: All
> Reporter: Simon Laws
> Assignee: Simon Laws
> Fix For: Java-SCA-1.x
>
>
> From this thread
> http://www.mail-archive.com/[email protected]/msg02537.html
> For a scenario where a WSDL document is used to generate a reference
> interface the following is observed.
> Composite (I added testRef)
> ====================
> <component name="CalculatorServiceComponent">
> <implementation.java class="calculator.CalculatorServiceImpl"/>
> <!--implementation.spring
> location="META-INF/spring/CalculatorService-context.xml"/-->
> <reference name="testRef">
> <binding.ws
> uri="http://localhost:8080/sample-calculator-ws-webapp/AddServiceComponent"/>
> </reference>
> <reference name="addService" >
> <interface.java interface="calculator.AddService" />
> <binding.ws requires="authentication"
> uri="http://localhost:8080/sample-calculator-ws-webapp/AddServiceComponent"/>
> </reference>
> <reference name="subtractService" target="SubtractServiceComponent" />
> <reference name="multiplyService" target="MultiplyServiceComponent" />
> <reference name="divideService" target="DivideServiceComponent" />
> </component>
> Implementation ( I extended the calculator's add method)
> =========================================
> public double add(double n1, double n2) {
> ArrayOfString existingTokens = new ArrayOfString();
> existingTokens.addString("XYZ");
> existingTokens.addString("ABC");
> Login login = new Login();
> login.setUserName("SomeUser");
> login.setPassword("SomePassword");
> login.setExistingTokenIds(existingTokens);
> testRef.login(login);
> return addService.add(n1, n2);
> }
> Result
> =====
> The web services binding generates the following message on the wire
> POST /sample-calculator-ws-webapp/AddServiceComponent HTTP/1.1
> Content-Type: text/xml; charset=UTF-8
> SOAPAction: ""
> User-Agent: Axis2
> Host: localhost:8080
> Content-Length: 387
> <?xml version='1.0' encoding='UTF-8'?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
> <soapenv:Body>
> <ns2:login xmlns:ns2="http://webservices.soa.mycompany.com/">
> <arg0>
> <existingTokenIds>
> <string>XYZ</string>
> <string>ABC</string>
> </existingTokenIds>
> <password>SomePassword</password>
> <userName>SomeUser</userName>
> </arg0>
> </ns2:login>
> </soapenv:Body>
> </soapenv:Envelope>
> Where <arg0> represents the login object that's passed in.
> To take a step closer to your composite I changed mine to configure
> the web service binding with the WSDL directly.
> Composite (I just changed the reference)
> =============================
> <reference name="testRef">
> <binding.ws
> wsdlElement="http://soa.mycompany.com/webservices/#wsdl.port(MyModuleService/MyModuleServiceSoap)"/>
> </reference>
> Result
> =====
> Again a message appeared on the wire
> POST /MyModuleFacility/MyModuleService.asmx HTTP/1.1
> Content-Type: text/xml; charset=UTF-8
> SOAPAction: "http://soa.mycompany.com/webservices/Login"
> User-Agent: Axis2
> Host: localhost:8080
> Content-Length: 495
> <?xml version='1.0' encoding='UTF-8'?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
> <soapenv:Body>
> <ns3:Login xmlns:ns2="http://webservices.soa.mycompany.com/"
> xmlns:ns3="http://soa.mycompany.com/webservices/"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:type="login">
> <existingTokenIds>
> <string>XYZ</string>
> <string>ABC</string>
> </existingTokenIds>
> <password>SomePassword</password>
> <userName>SomeUser</userName>
> </ns3:Login>
> </soapenv:Body>
> </soapenv:Envelope>
> Note no <arg0> this time. Seems to be document literal but not
> wrapped. Also the xsi:type looks wrong. Not sure why this is
> happening.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira