You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by Scott Kurz <sc...@gmail.com> on 2008/06/25 15:34:29 UTC
Question about: (TUSCANY-2388) Data binding does not work when Java interface & implementation (where method param is not String, primitive) exposed with a web services binding
This seems like an interesting issue and I was curious about a couple
things:
First, I'm wondering why I didn't recreate the error that others noticed.
Any ideas?
Next, I was wondering what implications there are here. I'm not 100% sure
but I'm guessing in the bottom-up case, without the Java wrapper
we would do child-to-child data transform instead of wrapper-to-wrapper (in
spite of the fact that the WSDL we gen is wrapped).
So does this imply that we always need the Java wrappers to deserialize XML
in the elementFormDefault=qualified style?
This doesn't seem too burdensome for the user, just trying to understand...
Scott
On Sat, Jun 21, 2008 at 2:03 AM, Raymond Feng (JIRA) <de...@tuscany.apache.org>
wrote:
>
> [
> https://issues.apache.org/jira/browse/TUSCANY-2388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel]
>
> Raymond Feng resolved TUSCANY-2388.
> -----------------------------------
>
> Resolution: Fixed
>
> I confirmed it's now fixed by r670103.
>
> > Data binding does not work when Java interface & implementation (where
> method param is not String, primitive) exposed with a web services binding
> >
> --------------------------------------------------------------------------------------------------------------------------------------------------
> >
> > Key: TUSCANY-2388
> > URL: https://issues.apache.org/jira/browse/TUSCANY-2388
> > Project: Tuscany
> > Issue Type: Bug
> > Components: Java SCA Data Binding Runtime
> > Affects Versions: Java-SCA-1.1
> > Environment: Windows XP; IBM J2RE 1.5.0 (Build 2.3)
> > Reporter: Peter Kemp
> > Assignee: Raymond Feng
> > Attachments: testcase.zip
> >
> >
> > 1. Create a component with a java implementation, with a service defined
> by a Java interface.
> > The parameter to the method is not a String, primitive or wrapper -
> rather, it's a class containing a couple of Strings and an Integer.
> > 2. Expose the service with a webservice binding.
> > 3. Deploy the composite (as a WAR or embedded).
> > 4. Retrieve the WSDL for the service (eg from
> http://localhost:8080/SomeServices?wsdl).
> > 5. Generate a web service request from the WSDL.
> > The runtime fails to map the web service request message to the
> implementation class method parameters - it calls the correct method, but
> the method parameter is null.
> > The test works fine when the parameter is a String.
> > Composite definition (some.composite):
> > -------------------------------------------------------
> > <?xml version="1.0" encoding="UTF-8"?>
> > <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="
> http://test" xmlns:test="http://test" name="some">
> > <service name="SomeServices" promote="SomeServicesComponent">
> > <binding.ws uri="http://localhost:8080/SomeServices"/>
> > </service>
> > <component name="SomeServicesComponent">
> > <implementation.java class="service.SomeServiceImpl"/>
> > <service name="SomeService">
> > <interface.java interface="service.SomeService" />
> > </service>
> > </component>
> > </composite>
> > Service interface:
> > -----------------------
> > /**
> > *
> > */
> > package service;
> > import org.osoa.sca.annotations.Remotable;
> > @Remotable
> > public interface SomeService {
> >
> > public AnObject getUsingString(String stringParam);
> > public AnObject getUsingMoreComplexObject(MoreComplexObject
> moreComplexParam);
> >
> > }
> > Implementation:
> > ----------------------
> > package service;
> > import org.osoa.sca.annotations.Service;
> > @Service(SomeService.class)
> > public class SomeServiceImpl implements SomeService {
> > public AnObject getUsingString(String stringParam) {
> > System.out.println("Param value:" + stringParam);
> > return getAnObject(stringParam);
> > }
> > private AnObject getAnObject(String stringParam) {
> > // TODO Auto-generated method stub
> > return new AnObject(stringParam + "123", 123);
> > }
> > public AnObject getUsingMoreComplexObject(MoreComplexObject
> moreComplexParam) {
> > System.out.println("Param value:" +
> moreComplexParam.getStringParam());
> >
> > return getAnObject(moreComplexParam.getStringParam());
> > }
> >
> > }
> > MoreComplexObject.java
> > -----------------------------------
> > /**
> > *
> > */
> > package service;
> > import java.io.Serializable;
> > public class MoreComplexObject implements Serializable{
> > private static final long serialVersionUID = 43242314234123L;
> > private String stringParam;
> > private Integer intParam;
> > private String stringParam2;
> > public String getStringParam() {
> > return stringParam;
> > }
> > public void setStringParam(String stringParam) {
> > this.stringParam = stringParam;
> > }
> > public Integer getIntParam() {
> > return intParam;
> > }
> > public void setIntParam(Integer intParam) {
> > this.intParam = intParam;
> > }
> > public String getStringParam2() {
> > return stringParam2;
> > }
> > public void setStringParam2(String stringParam2) {
> > this.stringParam2 = stringParam2;
> > }
> >
> > }
> > AnObject.java
> > -------------
> > package service;
> > public class AnObject {
> > private String someRetValue;
> > private Integer someOtherRetValue;
> >
> > public AnObject() {
> > }
> > public AnObject(String someRetValue, Integer someOtherRetValue) {
> > this.someRetValue = someRetValue;
> > this.someOtherRetValue = someOtherRetValue;
> > }
> > /**
> > * @return the someOtherRetValue
> > */
> > public Integer getSomeOtherRetValue() {
> > return someOtherRetValue;
> > }
> > /**
> > * @param someOtherRetValue the someOtherRetValue to set
> > */
> > public void setSomeOtherRetValue(Integer someOtherRetValue) {
> > this.someOtherRetValue = someOtherRetValue;
> > }
> > /**
> > * @return the someRetValue
> > */
> > public String getSomeRetValue() {
> > return someRetValue;
> > }
> > /**
> > * @param someRetValue the someRetValue to set
> > */
> > public void setSomeRetValue(String someRetValue) {
> > this.someRetValue = someRetValue;
> > }
> >
> >
> > }
> > WSDL returned by http://localhost:8080/SomeServices?wsdl
> >
> -------------------------------------------------------------------------------------------
> > <?xml version="1.0" encoding="UTF-8"?>
> > <wsdl:definitions targetNamespace="http://service" xmlns:soap12="
> http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="
> http://schemas.xmlsoap.org/wsdl/soap/" xmlns:mime="
> http://schemas.xmlsoap.org/wsdl/mime/" xmlns:xs="
> http://www.w3.org/2001/XMLSchema" xmlns:ns0="http://service/xsd"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:http="
> http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsaw="
> http://www.w3.org/2006/05/addressing/wsdl" xmlns:ns1="http://service">
> > <wsdl:types>
> > <xs:schema attributeFormDefault="qualified"
> elementFormDefault="qualified" targetNamespace="http://service/xsd"
> xmlns:ax21="http://service/xsd">
> > <xs:complexType name="MoreComplexObject">
> > <xs:sequence>
> > <xs:element minOccurs="0" name="intParam" nillable="true"
> type="xs:int"/>
> > <xs:element minOccurs="0" name="stringParam"
> nillable="true" type="xs:string"/>
> > <xs:element minOccurs="0" name="stringParam2"
> nillable="true" type="xs:string"/>
> > </xs:sequence>
> > </xs:complexType>
> > <xs:complexType name="AnObject">
> > <xs:sequence>
> > <xs:element minOccurs="0" name="someOtherRetValue"
> nillable="true" type="xs:int"/>
> > <xs:element minOccurs="0" name="someRetValue"
> nillable="true" type="xs:string"/>
> > </xs:sequence>
> > </xs:complexType>
> > </xs:schema>
> > <xs:schema attributeFormDefault="qualified"
> elementFormDefault="qualified" targetNamespace="http://service" xmlns:ns="
> http://service">
> > <xs:element name="getUsingMoreComplexObject">
> > <xs:complexType>
> > <xs:sequence>
> > <xs:element minOccurs="0" name="param0" nillable="true"
> type="ns0:MoreComplexObject"/>
> > </xs:sequence>
> > </xs:complexType>
> > </xs:element>
> > <xs:element name="getUsingMoreComplexObjectResponse">
> > <xs:complexType>
> > <xs:sequence>
> > <xs:element minOccurs="0" name="return" nillable="true"
> type="ns0:AnObject"/>
> > </xs:sequence>
> > </xs:complexType>
> > </xs:element>
> > <xs:element name="getUsingString">
> > <xs:complexType>
> > <xs:sequence>
> > <xs:element minOccurs="0" name="param0" nillable="true"
> type="xs:string"/>
> > </xs:sequence>
> > </xs:complexType>
> > </xs:element>
> > <xs:element name="getUsingStringResponse">
> > <xs:complexType>
> > <xs:sequence>
> > <xs:element minOccurs="0" name="return" nillable="true"
> type="ns0:AnObject"/>
> > </xs:sequence>
> > </xs:complexType>
> > </xs:element>
> > </xs:schema>
> > </wsdl:types>
> > <wsdl:message name="getUsingStringResponse">
> > <wsdl:part name="parameters" element="ns1:getUsingStringResponse">
> > </wsdl:part>
> > </wsdl:message>
> > <wsdl:message name="getUsingMoreComplexObjectResponse">
> > <wsdl:part name="parameters"
> element="ns1:getUsingMoreComplexObjectResponse">
> > </wsdl:part>
> > </wsdl:message>
> > <wsdl:message name="getUsingStringRequest">
> > <wsdl:part name="parameters" element="ns1:getUsingString">
> > </wsdl:part>
> > </wsdl:message>
> > <wsdl:message name="getUsingMoreComplexObjectRequest">
> > <wsdl:part name="parameters" element="ns1:getUsingMoreComplexObject">
> > </wsdl:part>
> > </wsdl:message>
> > <wsdl:portType name="SomeServicePortType">
> > <wsdl:operation name="getUsingString">
> > <wsdl:input message="ns1:getUsingStringRequest"
> wsaw:Action="urn:getUsingString">
> > </wsdl:input>
> > <wsdl:output message="ns1:getUsingStringResponse"
> wsaw:Action="urn:getUsingStringResponse">
> > </wsdl:output>
> > </wsdl:operation>
> > <wsdl:operation name="getUsingMoreComplexObject">
> > <wsdl:input message="ns1:getUsingMoreComplexObjectRequest"
> wsaw:Action="urn:getUsingMoreComplexObject">
> > </wsdl:input>
> > <wsdl:output message="ns1:getUsingMoreComplexObjectResponse"
> wsaw:Action="urn:getUsingMoreComplexObjectResponse">
> > </wsdl:output>
> > </wsdl:operation>
> > </wsdl:portType>
> > <wsdl:binding name="SomeServiceHttpBinding"
> type="ns1:SomeServicePortType">
> > <http:binding verb="POST"/>
> > <wsdl:operation name="getUsingString">
> > <http:operation location="SomeService/getUsingString"/>
> > <wsdl:input>
> > <mime:content part="getUsingString" type="text/xml"/>
> > </wsdl:input>
> > <wsdl:output>
> > <mime:content part="getUsingString" type="text/xml"/>
> > </wsdl:output>
> > </wsdl:operation>
> > <wsdl:operation name="getUsingMoreComplexObject">
> > <http:operation location="SomeService/getUsingMoreComplexObject"/>
> > <wsdl:input>
> > <mime:content part="getUsingMoreComplexObject" type="text/xml"/>
> > </wsdl:input>
> > <wsdl:output>
> > <mime:content part="getUsingMoreComplexObject" type="text/xml"/>
> > </wsdl:output>
> > </wsdl:operation>
> > </wsdl:binding>
> > <wsdl:binding name="SomeServiceSOAP11Binding"
> type="ns1:SomeServicePortType">
> > <soap:binding style="document" transport="
> http://schemas.xmlsoap.org/soap/http"/>
> > <wsdl:operation name="getUsingString">
> > <soap:operation soapAction="urn:getUsingString" style="document"/>
> > <wsdl:input>
> > <soap:body use="literal"/>
> > </wsdl:input>
> > <wsdl:output>
> > <soap:body use="literal"/>
> > </wsdl:output>
> > </wsdl:operation>
> > <wsdl:operation name="getUsingMoreComplexObject">
> > <soap:operation soapAction="urn:getUsingMoreComplexObject"
> style="document"/>
> > <wsdl:input>
> > <soap:body use="literal"/>
> > </wsdl:input>
> > <wsdl:output>
> > <soap:body use="literal"/>
> > </wsdl:output>
> > </wsdl:operation>
> > </wsdl:binding>
> > <wsdl:binding name="SomeServicePortType__SOAPBinding"
> type="ns1:SomeServicePortType">
> > <soap:binding style="document" transport="
> http://schemas.xmlsoap.org/soap/http"/>
> > <wsdl:operation name="getUsingString">
> > <soap:operation soapAction=""/>
> > <wsdl:input>
> > <soap:body use="literal"/>
> > </wsdl:input>
> > <wsdl:output>
> > <soap:body use="literal"/>
> > </wsdl:output>
> > </wsdl:operation>
> > <wsdl:operation name="getUsingMoreComplexObject">
> > <soap:operation soapAction=""/>
> > <wsdl:input>
> > <soap:body use="literal"/>
> > </wsdl:input>
> > <wsdl:output>
> > <soap:body use="literal"/>
> > </wsdl:output>
> > </wsdl:operation>
> > </wsdl:binding>
> > <wsdl:service name="SomeService">
> > <wsdl:port name="SomeServiceHttpport"
> binding="ns1:SomeServiceHttpBinding">
> > <http:address location="http://localhost:8080/SomeServices"/>
> > </wsdl:port>
> > <wsdl:port name="SomeServiceSOAP11port_http"
> binding="ns1:SomeServiceSOAP11Binding">
> > <soap:address location="http://localhost:8080/SomeServices"/>
> > </wsdl:port>
> > </wsdl:service>
> > <wsdl:service name="SomeServicePortType__Service">
> > <wsdl:port name="SomeServicePortType__SOAPHTTPPort"
> binding="ns1:SomeServicePortType__SOAPBinding">
> > <soap:address location="http://localhost:8080/SomeServices"/>
> > </wsdl:port>
> > </wsdl:service>
> > </wsdl:definitions>
> > SOAP payload:
> > --------------------
> > <soapenv:Envelope xmlns:soapenv="
> http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service"
> xmlns:xsd="http://service/xsd">
> > <soapenv:Header/>
> > <soapenv:Body>
> > <ser:getUsingMoreComplexObject>
> > <ser:param0>
> > <xsd:intParam>12</xsd:intParam>
> > <xsd:stringParam>Param_1</xsd:stringParam>
> > <xsd:stringParam2>Param2</xsd:stringParam2>
> > </ser:param0>
> > </ser:getUsingMoreComplexObject>
> > </soapenv:Body>
> > </soapenv:Envelope>
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>
Re: Question about: (TUSCANY-2388) Data binding does not work when Java interface & implementation (where method param is not String, primitive) exposed with a web services binding
Posted by Raymond Feng <en...@gmail.com>.
Hi,
Please see my comments inline.
Thanks,
Raymond
--------------------------------------------------
From: "Scott Kurz" <sc...@gmail.com>
Sent: Wednesday, June 25, 2008 6:34 AM
To: <de...@tuscany.apache.org>
Subject: Question about: (TUSCANY-2388) Data binding does not work when Java
interface & implementation (where method param is not String, primitive)
exposed with a web services binding
> This seems like an interesting issue and I was curious about a couple
> things:
>
> First, I'm wondering why I didn't recreate the error that others noticed.
> Any ideas?
What level of Tuscany code are you using? I'm using the trunk.
>
> Next, I was wondering what implications there are here. I'm not 100%
> sure
> but I'm guessing in the bottom-up case, without the Java wrapper
> we would do child-to-child data transform instead of wrapper-to-wrapper
> (in
> spite of the fact that the WSDL we gen is wrapped).
This case is about to have a regular JAX-WS client to talk to the Web
Service exposed by Tuscany for a SCA component with a java interface. We now
generate wrapper bean classes dynamically during runtime if the wrapper
classes are not present.
>
> So does this imply that we always need the Java wrappers to deserialize
> XML
> in the elementFormDefault=qualified style?
If we start from a WSDL operation whose wrapper element has a qualified
form, I expect the java interface will be generated from the WSDL and it
bears the JAXWS annotations to customize the namespace attr on the @WebParam
or @WebResult.
>
> This doesn't seem too burdensome for the user, just trying to
> understand...
>
> Scott
>
>
>
> On Sat, Jun 21, 2008 at 2:03 AM, Raymond Feng (JIRA)
> <de...@tuscany.apache.org>
> wrote:
>
>>
>> [
>> https://issues.apache.org/jira/browse/TUSCANY-2388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel]
>>
>> Raymond Feng resolved TUSCANY-2388.
>> -----------------------------------
>>
>> Resolution: Fixed
>>
>> I confirmed it's now fixed by r670103.
>>
>> > Data binding does not work when Java interface & implementation (where
>> method param is not String, primitive) exposed with a web services
>> binding
>> >
>> --------------------------------------------------------------------------------------------------------------------------------------------------
>> >
>> > Key: TUSCANY-2388
>> > URL: https://issues.apache.org/jira/browse/TUSCANY-2388
>> > Project: Tuscany
>> > Issue Type: Bug
>> > Components: Java SCA Data Binding Runtime
>> > Affects Versions: Java-SCA-1.1
>> > Environment: Windows XP; IBM J2RE 1.5.0 (Build 2.3)
>> > Reporter: Peter Kemp
>> > Assignee: Raymond Feng
>> > Attachments: testcase.zip
>> >
>> >
>> > 1. Create a component with a java implementation, with a service
>> > defined
>> by a Java interface.
>> > The parameter to the method is not a String, primitive or wrapper -
>> rather, it's a class containing a couple of Strings and an Integer.
>> > 2. Expose the service with a webservice binding.
>> > 3. Deploy the composite (as a WAR or embedded).
>> > 4. Retrieve the WSDL for the service (eg from
>> http://localhost:8080/SomeServices?wsdl).
>> > 5. Generate a web service request from the WSDL.
>> > The runtime fails to map the web service request message to the
>> implementation class method parameters - it calls the correct method, but
>> the method parameter is null.
>> > The test works fine when the parameter is a String.
>> > Composite definition (some.composite):
>> > -------------------------------------------------------
>> > <?xml version="1.0" encoding="UTF-8"?>
>> > <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="
>> http://test" xmlns:test="http://test" name="some">
>> > <service name="SomeServices" promote="SomeServicesComponent">
>> > <binding.ws uri="http://localhost:8080/SomeServices"/>
>> > </service>
>> > <component name="SomeServicesComponent">
>> > <implementation.java class="service.SomeServiceImpl"/>
>> > <service name="SomeService">
>> > <interface.java interface="service.SomeService" />
>> > </service>
>> > </component>
>> > </composite>
>> > Service interface:
>> > -----------------------
>> > /**
>> > *
>> > */
>> > package service;
>> > import org.osoa.sca.annotations.Remotable;
>> > @Remotable
>> > public interface SomeService {
>> >
>> > public AnObject getUsingString(String stringParam);
>> > public AnObject getUsingMoreComplexObject(MoreComplexObject
>> moreComplexParam);
>> >
>> > }
>> > Implementation:
>> > ----------------------
>> > package service;
>> > import org.osoa.sca.annotations.Service;
>> > @Service(SomeService.class)
>> > public class SomeServiceImpl implements SomeService {
>> > public AnObject getUsingString(String stringParam) {
>> > System.out.println("Param value:" + stringParam);
>> > return getAnObject(stringParam);
>> > }
>> > private AnObject getAnObject(String stringParam) {
>> > // TODO Auto-generated method stub
>> > return new AnObject(stringParam + "123", 123);
>> > }
>> > public AnObject getUsingMoreComplexObject(MoreComplexObject
>> moreComplexParam) {
>> > System.out.println("Param value:" +
>> moreComplexParam.getStringParam());
>> >
>> > return getAnObject(moreComplexParam.getStringParam());
>> > }
>> >
>> > }
>> > MoreComplexObject.java
>> > -----------------------------------
>> > /**
>> > *
>> > */
>> > package service;
>> > import java.io.Serializable;
>> > public class MoreComplexObject implements Serializable{
>> > private static final long serialVersionUID = 43242314234123L;
>> > private String stringParam;
>> > private Integer intParam;
>> > private String stringParam2;
>> > public String getStringParam() {
>> > return stringParam;
>> > }
>> > public void setStringParam(String stringParam) {
>> > this.stringParam = stringParam;
>> > }
>> > public Integer getIntParam() {
>> > return intParam;
>> > }
>> > public void setIntParam(Integer intParam) {
>> > this.intParam = intParam;
>> > }
>> > public String getStringParam2() {
>> > return stringParam2;
>> > }
>> > public void setStringParam2(String stringParam2) {
>> > this.stringParam2 = stringParam2;
>> > }
>> >
>> > }
>> > AnObject.java
>> > -------------
>> > package service;
>> > public class AnObject {
>> > private String someRetValue;
>> > private Integer someOtherRetValue;
>> >
>> > public AnObject() {
>> > }
>> > public AnObject(String someRetValue, Integer someOtherRetValue) {
>> > this.someRetValue = someRetValue;
>> > this.someOtherRetValue = someOtherRetValue;
>> > }
>> > /**
>> > * @return the someOtherRetValue
>> > */
>> > public Integer getSomeOtherRetValue() {
>> > return someOtherRetValue;
>> > }
>> > /**
>> > * @param someOtherRetValue the someOtherRetValue to set
>> > */
>> > public void setSomeOtherRetValue(Integer someOtherRetValue) {
>> > this.someOtherRetValue = someOtherRetValue;
>> > }
>> > /**
>> > * @return the someRetValue
>> > */
>> > public String getSomeRetValue() {
>> > return someRetValue;
>> > }
>> > /**
>> > * @param someRetValue the someRetValue to set
>> > */
>> > public void setSomeRetValue(String someRetValue) {
>> > this.someRetValue = someRetValue;
>> > }
>> >
>> >
>> > }
>> > WSDL returned by http://localhost:8080/SomeServices?wsdl
>> >
>> -------------------------------------------------------------------------------------------
>> > <?xml version="1.0" encoding="UTF-8"?>
>> > <wsdl:definitions targetNamespace="http://service" xmlns:soap12="
>> http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="
>> http://schemas.xmlsoap.org/wsdl/soap/" xmlns:mime="
>> http://schemas.xmlsoap.org/wsdl/mime/" xmlns:xs="
>> http://www.w3.org/2001/XMLSchema" xmlns:ns0="http://service/xsd"
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:http="
>> http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsaw="
>> http://www.w3.org/2006/05/addressing/wsdl" xmlns:ns1="http://service">
>> > <wsdl:types>
>> > <xs:schema attributeFormDefault="qualified"
>> elementFormDefault="qualified" targetNamespace="http://service/xsd"
>> xmlns:ax21="http://service/xsd">
>> > <xs:complexType name="MoreComplexObject">
>> > <xs:sequence>
>> > <xs:element minOccurs="0" name="intParam"
>> > nillable="true"
>> type="xs:int"/>
>> > <xs:element minOccurs="0" name="stringParam"
>> nillable="true" type="xs:string"/>
>> > <xs:element minOccurs="0" name="stringParam2"
>> nillable="true" type="xs:string"/>
>> > </xs:sequence>
>> > </xs:complexType>
>> > <xs:complexType name="AnObject">
>> > <xs:sequence>
>> > <xs:element minOccurs="0" name="someOtherRetValue"
>> nillable="true" type="xs:int"/>
>> > <xs:element minOccurs="0" name="someRetValue"
>> nillable="true" type="xs:string"/>
>> > </xs:sequence>
>> > </xs:complexType>
>> > </xs:schema>
>> > <xs:schema attributeFormDefault="qualified"
>> elementFormDefault="qualified" targetNamespace="http://service"
>> xmlns:ns="
>> http://service">
>> > <xs:element name="getUsingMoreComplexObject">
>> > <xs:complexType>
>> > <xs:sequence>
>> > <xs:element minOccurs="0" name="param0"
>> > nillable="true"
>> type="ns0:MoreComplexObject"/>
>> > </xs:sequence>
>> > </xs:complexType>
>> > </xs:element>
>> > <xs:element name="getUsingMoreComplexObjectResponse">
>> > <xs:complexType>
>> > <xs:sequence>
>> > <xs:element minOccurs="0" name="return"
>> > nillable="true"
>> type="ns0:AnObject"/>
>> > </xs:sequence>
>> > </xs:complexType>
>> > </xs:element>
>> > <xs:element name="getUsingString">
>> > <xs:complexType>
>> > <xs:sequence>
>> > <xs:element minOccurs="0" name="param0"
>> > nillable="true"
>> type="xs:string"/>
>> > </xs:sequence>
>> > </xs:complexType>
>> > </xs:element>
>> > <xs:element name="getUsingStringResponse">
>> > <xs:complexType>
>> > <xs:sequence>
>> > <xs:element minOccurs="0" name="return"
>> > nillable="true"
>> type="ns0:AnObject"/>
>> > </xs:sequence>
>> > </xs:complexType>
>> > </xs:element>
>> > </xs:schema>
>> > </wsdl:types>
>> > <wsdl:message name="getUsingStringResponse">
>> > <wsdl:part name="parameters" element="ns1:getUsingStringResponse">
>> > </wsdl:part>
>> > </wsdl:message>
>> > <wsdl:message name="getUsingMoreComplexObjectResponse">
>> > <wsdl:part name="parameters"
>> element="ns1:getUsingMoreComplexObjectResponse">
>> > </wsdl:part>
>> > </wsdl:message>
>> > <wsdl:message name="getUsingStringRequest">
>> > <wsdl:part name="parameters" element="ns1:getUsingString">
>> > </wsdl:part>
>> > </wsdl:message>
>> > <wsdl:message name="getUsingMoreComplexObjectRequest">
>> > <wsdl:part name="parameters"
>> > element="ns1:getUsingMoreComplexObject">
>> > </wsdl:part>
>> > </wsdl:message>
>> > <wsdl:portType name="SomeServicePortType">
>> > <wsdl:operation name="getUsingString">
>> > <wsdl:input message="ns1:getUsingStringRequest"
>> wsaw:Action="urn:getUsingString">
>> > </wsdl:input>
>> > <wsdl:output message="ns1:getUsingStringResponse"
>> wsaw:Action="urn:getUsingStringResponse">
>> > </wsdl:output>
>> > </wsdl:operation>
>> > <wsdl:operation name="getUsingMoreComplexObject">
>> > <wsdl:input message="ns1:getUsingMoreComplexObjectRequest"
>> wsaw:Action="urn:getUsingMoreComplexObject">
>> > </wsdl:input>
>> > <wsdl:output message="ns1:getUsingMoreComplexObjectResponse"
>> wsaw:Action="urn:getUsingMoreComplexObjectResponse">
>> > </wsdl:output>
>> > </wsdl:operation>
>> > </wsdl:portType>
>> > <wsdl:binding name="SomeServiceHttpBinding"
>> type="ns1:SomeServicePortType">
>> > <http:binding verb="POST"/>
>> > <wsdl:operation name="getUsingString">
>> > <http:operation location="SomeService/getUsingString"/>
>> > <wsdl:input>
>> > <mime:content part="getUsingString" type="text/xml"/>
>> > </wsdl:input>
>> > <wsdl:output>
>> > <mime:content part="getUsingString" type="text/xml"/>
>> > </wsdl:output>
>> > </wsdl:operation>
>> > <wsdl:operation name="getUsingMoreComplexObject">
>> > <http:operation
>> > location="SomeService/getUsingMoreComplexObject"/>
>> > <wsdl:input>
>> > <mime:content part="getUsingMoreComplexObject"
>> > type="text/xml"/>
>> > </wsdl:input>
>> > <wsdl:output>
>> > <mime:content part="getUsingMoreComplexObject"
>> > type="text/xml"/>
>> > </wsdl:output>
>> > </wsdl:operation>
>> > </wsdl:binding>
>> > <wsdl:binding name="SomeServiceSOAP11Binding"
>> type="ns1:SomeServicePortType">
>> > <soap:binding style="document" transport="
>> http://schemas.xmlsoap.org/soap/http"/>
>> > <wsdl:operation name="getUsingString">
>> > <soap:operation soapAction="urn:getUsingString"
>> > style="document"/>
>> > <wsdl:input>
>> > <soap:body use="literal"/>
>> > </wsdl:input>
>> > <wsdl:output>
>> > <soap:body use="literal"/>
>> > </wsdl:output>
>> > </wsdl:operation>
>> > <wsdl:operation name="getUsingMoreComplexObject">
>> > <soap:operation soapAction="urn:getUsingMoreComplexObject"
>> style="document"/>
>> > <wsdl:input>
>> > <soap:body use="literal"/>
>> > </wsdl:input>
>> > <wsdl:output>
>> > <soap:body use="literal"/>
>> > </wsdl:output>
>> > </wsdl:operation>
>> > </wsdl:binding>
>> > <wsdl:binding name="SomeServicePortType__SOAPBinding"
>> type="ns1:SomeServicePortType">
>> > <soap:binding style="document" transport="
>> http://schemas.xmlsoap.org/soap/http"/>
>> > <wsdl:operation name="getUsingString">
>> > <soap:operation soapAction=""/>
>> > <wsdl:input>
>> > <soap:body use="literal"/>
>> > </wsdl:input>
>> > <wsdl:output>
>> > <soap:body use="literal"/>
>> > </wsdl:output>
>> > </wsdl:operation>
>> > <wsdl:operation name="getUsingMoreComplexObject">
>> > <soap:operation soapAction=""/>
>> > <wsdl:input>
>> > <soap:body use="literal"/>
>> > </wsdl:input>
>> > <wsdl:output>
>> > <soap:body use="literal"/>
>> > </wsdl:output>
>> > </wsdl:operation>
>> > </wsdl:binding>
>> > <wsdl:service name="SomeService">
>> > <wsdl:port name="SomeServiceHttpport"
>> binding="ns1:SomeServiceHttpBinding">
>> > <http:address location="http://localhost:8080/SomeServices"/>
>> > </wsdl:port>
>> > <wsdl:port name="SomeServiceSOAP11port_http"
>> binding="ns1:SomeServiceSOAP11Binding">
>> > <soap:address location="http://localhost:8080/SomeServices"/>
>> > </wsdl:port>
>> > </wsdl:service>
>> > <wsdl:service name="SomeServicePortType__Service">
>> > <wsdl:port name="SomeServicePortType__SOAPHTTPPort"
>> binding="ns1:SomeServicePortType__SOAPBinding">
>> > <soap:address location="http://localhost:8080/SomeServices"/>
>> > </wsdl:port>
>> > </wsdl:service>
>> > </wsdl:definitions>
>> > SOAP payload:
>> > --------------------
>> > <soapenv:Envelope xmlns:soapenv="
>> http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service"
>> xmlns:xsd="http://service/xsd">
>> > <soapenv:Header/>
>> > <soapenv:Body>
>> > <ser:getUsingMoreComplexObject>
>> > <ser:param0>
>> > <xsd:intParam>12</xsd:intParam>
>> > <xsd:stringParam>Param_1</xsd:stringParam>
>> > <xsd:stringParam2>Param2</xsd:stringParam2>
>> > </ser:param0>
>> > </ser:getUsingMoreComplexObject>
>> > </soapenv:Body>
>> > </soapenv:Envelope>
>>
>> --
>> This message is automatically generated by JIRA.
>> -
>> You can reply to this email to add a comment to the issue online.
>>
>>
>