I use  JAX-WS Front End, Code-First development. I can use java client to
connect to CXF service. Now I need to make sure .NET Client work.
Unfortunately, I know nothing about .NET. Can anyone give me some
ideas/tips? 

I looked into some of the posts:
http://www.nabble.com/WSDL-not-recognized-by-vs-net-td13132033.html#a13132033
http://www.nabble.com/Generated-wsdl-in-XFire-Versus-CXF-td12357856.html#a13131774

The problem was .NET might complain the wsdl file generated in CXF. Belows
are the wsdl using wrapped vs. bare.  

I also try wsdlvalidator tool as mentioned here
htttp://www.nabble.com/Microsoft-interoperability-td13115417.html#a13115687

C:\>wsdlvalidator HelloWorld_wrapped.wsdl
Passed Validation : Valid WSDL

C:\>wsdlvalidator HelloWorld_bare.wsdl
WSDLValidator Error : WSI-BP-1.0 R2210 violation: Operation 'sayHi' more
than one part bound to body

wsdlvalidator complains about HelloWorld_bare.wsdl. But java client was able
to connect WS using either wrapped or bare wsdl. So which SOAPBinding is
safe for .NET Client?

//interface
public interface HelloWorld {
        public java.lang.String sayHi(java.lang.String text,
demo.spring.ProfileInfo info) throws BusinessLogicException;
}

//HelloWorld_wrapped.wsdl

<?xml version="1.0" encoding="utf-8"?><wsdl:definitions
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:tns="http://spring.demo/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema";
name="HelloWorldService" targetNamespace="http://spring.demo/";>
  <wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
attributeFormDefault="unqualified" elementFormDefault="unqualified"
targetNamespace="http://spring.demo/"; xmlns:tns="http://spring.demo/";>
<xs:element name="BusinessLogicFaultDetail" nillable="true"
type="tns:BusinessLogicFaultDetail"/>
<xs:element name="sayHi" nillable="true" type="tns:sayHi"/>
<xs:element name="sayHiResponse" nillable="true" type="tns:sayHiResponse"/>
<xs:complexType name="sayHi">
<xs:sequence>
<xs:element minOccurs="0" name="text" type="xs:string"/>
<xs:element minOccurs="0" name="info" type="tns:profileInfo"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="profileInfo">
<xs:sequence>
<xs:element minOccurs="0" name="addressLine1" type="xs:string"/>
<xs:element minOccurs="0" name="addressLine2" type="xs:string"/>
<xs:element minOccurs="0" name="city" type="xs:string"/>
<xs:element minOccurs="0" name="companyName" type="xs:string"/>
<xs:element minOccurs="0" name="email" type="xs:string"/>
<xs:element minOccurs="0" name="fax" type="xs:string"/>
<xs:element minOccurs="0" name="firstName" type="xs:string"/>
<xs:element minOccurs="0" name="lastName" type="xs:string"/>
<xs:element minOccurs="0" name="middleName" type="xs:string"/>
<xs:element minOccurs="0" name="mobile" type="xs:string"/>
<xs:element minOccurs="0" name="phone" type="xs:string"/>
<xs:element minOccurs="0" name="state" type="xs:string"/>
<xs:element minOccurs="0" name="status" type="xs:string"/>
<xs:element minOccurs="0" name="zip" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="sayHiResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="BusinessLogicFaultDetail"/>
</xs:schema>
  </wsdl:types>
  <wsdl:message name="BusinessLogicException">
    <wsdl:part element="tns:BusinessLogicFaultDetail"
name="BusinessLogicException">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="sayHiResponse">
    <wsdl:part element="tns:sayHiResponse" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="sayHi">
    <wsdl:part element="tns:sayHi" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="HelloWorld">
    <wsdl:operation name="sayHi">
      <wsdl:input message="tns:sayHi" name="sayHi">
    </wsdl:input>
      <wsdl:output message="tns:sayHiResponse" name="sayHiResponse">
    </wsdl:output>
      <wsdl:fault message="tns:BusinessLogicException"
name="BusinessLogicException">
    </wsdl:fault>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="HelloWorldServiceSoapBinding" type="tns:HelloWorld">
    <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="sayHi">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input name="sayHi">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="sayHiResponse">
        <soap:body use="literal"/>
      </wsdl:output>
      <wsdl:fault name="BusinessLogicException">
        <soap:fault name="BusinessLogicException" use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="HelloWorldService">
    <wsdl:port binding="tns:HelloWorldServiceSoapBinding"
name="HelloWorldPort">
      <soap:address
location="http://localhost:9090/spring_http/ws/ServerEndPoint"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

message sent:

<soap:Body>
<ns2:sayHi xmlns:ns2="http://spring.demo/";>
<text>OK</text>
<info>
        <firstName>MyFirstName</firstName>
        <lastName>MyLastName</lastName>
        <state>MyState</state>
</info>
</ns2:sayHi>
</soap:Body>


//HelloWorld_bare.wsdl

<?xml version="1.0" encoding="utf-8"?><wsdl:definitions
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/";
xmlns:tns="http://spring.demo/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema";
name="HelloWorldService" targetNamespace="http://spring.demo/";>
  <wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
xmlns="http://spring.demo/"; attributeFormDefault="unqualified"
elementFormDefault="unqualified" targetNamespace="http://spring.demo/";
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/";
xmlns:tns="http://spring.demo/";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
<xs:complexType name="profileInfo">
<xs:sequence>
<xs:element minOccurs="0" name="addressLine1" type="xs:string"/>
<xs:element minOccurs="0" name="addressLine2" type="xs:string"/>
<xs:element minOccurs="0" name="city" type="xs:string"/>
<xs:element minOccurs="0" name="companyName" type="xs:string"/>
<xs:element minOccurs="0" name="email" type="xs:string"/>
<xs:element minOccurs="0" name="fax" type="xs:string"/>
<xs:element minOccurs="0" name="firstName" type="xs:string"/>
<xs:element minOccurs="0" name="lastName" type="xs:string"/>
<xs:element minOccurs="0" name="middleName" type="xs:string"/>
<xs:element minOccurs="0" name="mobile" type="xs:string"/>
<xs:element minOccurs="0" name="phone" type="xs:string"/>
<xs:element minOccurs="0" name="state" type="xs:string"/>
<xs:element minOccurs="0" name="status" type="xs:string"/>
<xs:element minOccurs="0" name="zip" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="BusinessLogicFaultDetail"
type="BusinessLogicFaultDetail"/>
<xs:complexType name="BusinessLogicFaultDetail">
<xs:sequence/>
</xs:complexType>
<xs:element name="text" nillable="true" type="xs:string"/>
<xs:element name="info" nillable="true" type="profileInfo"/>
<xs:element name="sayHiResponse" nillable="true" type="xs:string"/>
</xs:schema>
  </wsdl:types>
  <wsdl:message name="BusinessLogicException">
    <wsdl:part element="tns:BusinessLogicFaultDetail"
name="BusinessLogicException">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="sayHiResponse">
    <wsdl:part element="tns:sayHiResponse" name="sayHiResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="sayHi">
    <wsdl:part element="tns:text" name="text">
    </wsdl:part>
    <wsdl:part element="tns:info" name="info">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="HelloWorld">
    <wsdl:operation name="sayHi">
      <wsdl:input message="tns:sayHi" name="sayHi">
    </wsdl:input>
      <wsdl:output message="tns:sayHiResponse" name="sayHiResponse">
    </wsdl:output>
      <wsdl:fault message="tns:BusinessLogicException"
name="BusinessLogicException">
    </wsdl:fault>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="HelloWorldServiceSoapBinding" type="tns:HelloWorld">
    <soap12:binding style="document"
transport="http://www.w3.org/2003/05/soap/bindings/HTTP/"/>
    <wsdl:operation name="sayHi">
      <soap12:operation soapAction="" style="document"/>
      <wsdl:input name="sayHi">
        <soap12:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="sayHiResponse">
        <soap12:body use="literal"/>
      </wsdl:output>
      <wsdl:fault name="BusinessLogicException">
        <soap12:fault name="BusinessLogicException" use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="HelloWorldService">
    <wsdl:port binding="tns:HelloWorldServiceSoapBinding"
name="HelloWorldPort">
      <soap12:address
location="http://localhost:9090/spring_http/ws/ServerEndPoint"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

message sent:

<soap:Body>
<ns2:text xmlns:ns2="http://spring.demo/";>OK</ns2:text>
<ns2:info xmlns:ns2="http://spring.demo/";>
        <firstName>MyFirstName</firstName>
        <lastName>MyLastName</lastName>
        state>MyState</state>
</ns2:info>
</soap:Body>


-- 
View this message in context: 
http://www.nabble.com/.NET-client-tp14718103p14718103.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to