ColdFusion CFC WSDL Generating Accessors - web-services

I have a super simple component, let's call it sample.cfc:
<cfcomponent output="false" accessors="false">
<cfproperty name="strReturnMessage" type="string"/>
<cfproperty name="intStatusCode" type="numeric"/>
</cfcomponent>
When I view the WSDL for this file by accessing sample.cfc?wsdl on my webserver (ColdFusion 10,0,16,293499 Enterprise), the WSDL has the accessors listed (the automatic get/set for properties) despite the fact I have it set to false.
<wsdl:message name="setIntStatusCodeRequest">
<wsdl:part name="intStatusCode" type="xsd:double">
</wsdl:part>
</wsdl:message>
<wsdl:message name="setIntStatusCodeResponse">
</wsdl:message>
<wsdl:message name="getStrReturnMessageResponse">
<wsdl:part name="getStrReturnMessageReturn" type="xsd:string">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getStrReturnMessageRequest">
</wsdl:message>
<wsdl:message name="getIntStatusCodeRequest">
</wsdl:message>
<wsdl:message name="getIntStatusCodeResponse">
<wsdl:part name="getIntStatusCodeReturn" type="xsd:double">
</wsdl:part>
</wsdl:message>
<wsdl:message name="setStrReturnMessageRequest">
<wsdl:part name="strReturnMessage" type="xsd:string">
</wsdl:part>
</wsdl:message>
<wsdl:message name="setStrReturnMessageResponse">
</wsdl:message>

Related

The required WSDL extension element 'binding' from namespace

I'm having an huge problem with the my web service.
When I try to generate the files via svcutil I get the following error messages:
Attempting to download metadata from 'http://srv:13208/GROUPING_WS_ASMX.as
mx' using WS-Metadata Exchange or DISCO.
Error: Cannot import wsdl:binding
Detail: The required WSDL extension element 'binding' from namespace 'http://sch
emas.xmlsoap.org/wsdl/http/' was not handled.
XPath to Error Source: //wsdl:definitions[#targetNamespace='http://grouping/']/wsdl:binding[#name='GROUPING_WS_ASMXHttpGet']
Error: Cannot import wsdl:port
Detail: There was an error importing a wsdl:binding that the wsdl:port is depend
ent on.
XPath to wsdl:binding: //wsdl:definitions[#targetNamespace='http://grouping/']/wsdl:binding[#name='GROUPING_WS_ASMXHttpGet']
XPath to Error Source: //wsdl:definitions[#targetNamespace='http://grouping/']/wsdl:service[#name='GROUPING_WS_ASMX']/wsdl:port[#name='GROUPING_WS_ASM
XHttpGet']
Error: Cannot import wsdl:binding
Detail: The required WSDL extension element 'binding' from namespace 'http://sch
emas.xmlsoap.org/wsdl/http/' was not handled.
XPath to Error Source: //wsdl:definitions[#targetNamespace='http://grouping/']/wsdl:binding[#name='GROUPING_WS_ASMXHttpPost']
Error: Cannot import wsdl:port
Detail: There was an error importing a wsdl:binding that the wsdl:port is depend
ent on.
XPath to wsdl:binding: //wsdl:definitions[#targetNamespace='http://grouping/']/wsdl:binding[#name='GROUPING_WS_ASMXHttpPost']
XPath to Error Source: //wsdl:definitions[#targetNamespace='http://grouping']/wsdl:service[#name='GROUPING_WS_ASMX']/wsdl:port[#name='GROUPING_WS_ASM
XHttpPost']
Here is my WSDL definition:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://grouping/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://grouping/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/">
<wsdl:types><s:schema targetNamespace="http://grouping/" elementFormDefault="qualified">
<s:element name="OnClick_GroupProducts"><s:complexType><s:sequence><s:element name="quoteProductsId" type="s:string" maxOccurs="1" minOccurs="0"/>
</s:sequence></s:complexType></s:element><s:element name="OnClick_GroupProductsResponse">
<s:complexType><s:sequence><s:element name="OnClick_GroupProductsResult" type="s:string" maxOccurs="1" minOccurs="0"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="OnClick_UpdateGroupProduct">
<s:complexType>
<s:sequence>
<s:element name="quoteProductsId" type="s:string" maxOccurs="1" minOccurs="0"/><s:element name="groupname" type="s:string" maxOccurs="1" minOccurs="0"/>
</s:sequence></s:complexType>
</s:element><s:element name="OnClick_UpdateGroupProductResponse">
<s:complexType/>
</s:element>
<s:element name="OnLoad_GetProductGroups">
<s:complexType>
<s:sequence>
<s:element name="quoteProductId" type="s:string" maxOccurs="1" minOccurs="0"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="OnLoad_GetProductGroupsResponse">
<s:complexType>
<s:sequence>
<s:element name="OnLoad_GetProductGroupsResult" type="tns:ArrayOfString" maxOccurs="1" minOccurs="0"/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfString">
<s:sequence>
<s:element name="string" type="s:string" maxOccurs="unbounded" minOccurs="0" nillable="true"/>
</s:sequence></s:complexType><s:element name="string" type="s:string" nillable="true"/>
<s:element name="ArrayOfString" type="tns:ArrayOfString" nillable="true"/>
</s:schema></wsdl:types><wsdl:message name="OnClick_GroupProductsSoapIn">
<wsdl:part name="parameters" element="tns:OnClick_GroupProducts"/>
</wsdl:message><wsdl:message name="OnClick_GroupProductsSoapOut">
<wsdl:part name="parameters" element="tns:OnClick_GroupProductsResponse"/></wsdl:message>
<wsdl:message name="OnClick_UpdateGroupProductSoapIn"><wsdl:part name="parameters" element="tns:OnClick_UpdateGroupProduct"/></wsdl:message>
<wsdl:message name="OnClick_UpdateGroupProductSoapOut"><wsdl:part name="parameters" element="tns:OnClick_UpdateGroupProductResponse"/></wsdl:message>
<wsdl:message name="OnLoad_GetProductGroupsSoapIn"><wsdl:part name="parameters" element="tns:OnLoad_GetProductGroups"/></wsdl:message>
<wsdl:message name="OnLoad_GetProductGroupsSoapOut"><wsdl:part name="parameters" element="tns:OnLoad_GetProductGroupsResponse"/></wsdl:message>
<wsdl:message name="OnClick_GroupProductsHttpGetIn"><wsdl:part name="quoteProductsId" type="s:string"/></wsdl:message>
<wsdl:message name="OnClick_GroupProductsHttpGetOut"><wsdl:part name="Body" element="tns:string"/></wsdl:message>
<wsdl:message name="OnClick_UpdateGroupProductHttpGetIn"><wsdl:part name="quoteProductsId" type="s:string"/><wsdl:part name="groupname" type="s:string"/></wsdl:message>
<wsdl:message name="OnClick_UpdateGroupProductHttpGetOut"/><wsdl:message name="OnLoad_GetProductGroupsHttpGetIn"><wsdl:part name="quoteProductId" type="s:string"/></wsdl:message>
<wsdl:message name="OnLoad_GetProductGroupsHttpGetOut"><wsdl:part name="Body" element="tns:ArrayOfString"/></wsdl:message>
<wsdl:message name="OnClick_GroupProductsHttpPostIn"><wsdl:part name="quoteProductsId" type="s:string"/></wsdl:message>
<wsdl:message name="OnClick_GroupProductsHttpPostOut"><wsdl:part name="Body" element="tns:string"/></wsdl:message>
<wsdl:message name="OnClick_UpdateGroupProductHttpPostIn"><wsdl:part name="quoteProductsId" type="s:string"/><wsdl:part name="groupname" type="s:string"/></wsdl:message>
<wsdl:message name="OnClick_UpdateGroupProductHttpPostOut"/><wsdl:message name="OnLoad_GetProductGroupsHttpPostIn"><wsdl:part name="quoteProductId" type="s:string"/></wsdl:message>
<wsdl:message name="OnLoad_GetProductGroupsHttpPostOut"><wsdl:part name="Body" element="tns:ArrayOfString"/></wsdl:message>
<wsdl:portType name="GROUPING_WS_ASMXSoap"><wsdl:operation name="OnClick_GroupProducts"><wsdl:input message="tns:OnClick_GroupProductsSoapIn"/>
<wsdl:output message="tns:OnClick_GroupProductsSoapOut"/></wsdl:operation><wsdl:operation name="OnClick_UpdateGroupProduct"><wsdl:input message="tns:OnClick_UpdateGroupProductSoapIn"/>
<wsdl:output message="tns:OnClick_UpdateGroupProductSoapOut"/></wsdl:operation><wsdl:operation name="OnLoad_GetProductGroups"><wsdl:input message="tns:OnLoad_GetProductGroupsSoapIn"/>
<wsdl:output message="tns:OnLoad_GetProductGroupsSoapOut"/></wsdl:operation></wsdl:portType><wsdl:portType name="GROUPING_WS_ASMXHttpGet"><wsdl:operation name="OnClick_GroupProducts">
<wsdl:input message="tns:OnClick_GroupProductsHttpGetIn"/><wsdl:output message="tns:OnClick_GroupProductsHttpGetOut"/></wsdl:operation><wsdl:operation name="OnClick_UpdateGroupProduct">
<wsdl:input message="tns:OnClick_UpdateGroupProductHttpGetIn"/><wsdl:output message="tns:OnClick_UpdateGroupProductHttpGetOut"/></wsdl:operation><wsdl:operation name="OnLoad_GetProductGroups">
<wsdl:input message="tns:OnLoad_GetProductGroupsHttpGetIn"/><wsdl:output message="tns:OnLoad_GetProductGroupsHttpGetOut"/></wsdl:operation></wsdl:portType>
<wsdl:portType name="GROUPING_WS_ASMXHttpPost"><wsdl:operation name="OnClick_GroupProducts"><wsdl:input message="tns:OnClick_GroupProductsHttpPostIn"/>
<wsdl:output message="tns:OnClick_GroupProductsHttpPostOut"/></wsdl:operation><wsdl:operation name="OnClick_UpdateGroupProduct">
<wsdl:input message="tns:OnClick_UpdateGroupProductHttpPostIn"/><wsdl:output message="tns:OnClick_UpdateGroupProductHttpPostOut"/>
</wsdl:operation><wsdl:operation name="OnLoad_GetProductGroups"><wsdl:input message="tns:OnLoad_GetProductGroupsHttpPostIn"/>
<wsdl:output message="tns:OnLoad_GetProductGroupsHttpPostOut"/></wsdl:operation></wsdl:portType><wsdl:binding name="GROUPING_WS_ASMXSoap" type="tns:GROUPING_WS_ASMXSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="OnClick_GroupProducts">
<soap:operation style="document" soapAction="http://grouping/OnClick_GroupProducts"/><wsdl:input>
<soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="OnClick_UpdateGroupProduct">
<soap:operation style="document" soapAction="http://grouping/OnClick_UpdateGroupProduct"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output>
<soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="OnLoad_GetProductGroups">
<soap:operation style="document" soapAction="http://grouping/OnLoad_GetProductGroups"/><wsdl:input><soap:body use="literal"/>
</wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:binding name="GROUPING_WS_ASMXSoap12" type="tns:GROUPING_WS_ASMXSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="OnClick_GroupProducts">
<soap12:operation style="document" soapAction="http://groupingOnClick_GroupProducts"/><wsdl:input>
<soap12:body use="literal"/></wsdl:input><wsdl:output><soap12:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="OnClick_UpdateGroupProduct">
<soap12:operation style="document" soapAction="http://grouping/OnClick_UpdateGroupProduct"/><wsdl:input><soap12:body use="literal"/></wsdl:input>
<wsdl:output><soap12:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="OnLoad_GetProductGroups">
<soap12:operation style="document" soapAction="http://grouping/OnLoad_GetProductGroups"/><wsdl:input><soap12:body use="literal"/></wsdl:input><wsdl:output>
<soap12:body use="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:binding name="GROUPING_WS_ASMXHttpGet" type="tns:GROUPING_WS_ASMXHttpGet">
<http:binding verb="GET"/><wsdl:operation name="OnClick_GroupProducts"><http:operation location="/OnClick_GroupProducts"/><wsdl:input><http:urlEncoded/>
</wsdl:input><wsdl:output><mime:mimeXml part="Body"/></wsdl:output></wsdl:operation><wsdl:operation name="OnClick_UpdateGroupProduct">
<http:operation location="/OnClick_UpdateGroupProduct"/><wsdl:input><http:urlEncoded/></wsdl:input><wsdl:output/></wsdl:operation><wsdl:operation name="OnLoad_GetProductGroups">
<http:operation location="/OnLoad_GetProductGroups"/><wsdl:input><http:urlEncoded/></wsdl:input><wsdl:output><mime:mimeXml part="Body"/></wsdl:output></wsdl:operation>
</wsdl:binding><wsdl:binding name="GROUPING_WS_ASMXHttpPost" type="tns:GROUPING_WS_ASMXHttpPost"><http:binding verb="POST"/><wsdl:operation name="OnClick_GroupProducts">
<http:operation location="/OnClick_GroupProducts"/><wsdl:input><mime:content type="application/x-www-form-urlencoded"/></wsdl:input><wsdl:output><mime:mimeXml part="Body"/>
</wsdl:output></wsdl:operation><wsdl:operation name="OnClick_UpdateGroupProduct"><http:operation location="/OnClick_UpdateGroupProduct"/>
<wsdl:input><mime:content type="application/x-www-form-urlencoded"/></wsdl:input><wsdl:output/></wsdl:operation><wsdl:operation name="OnLoad_GetProductGroups">
<http:operation location="/OnLoad_GetProductGroups"/><wsdl:input><mime:content type="application/x-www-form-urlencoded"/></wsdl:input><wsdl:output><mime:mimeXml part="Body"/>
</wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="GROUPING_WS_ASMX"><wsdl:port name="GROUPING_WS_ASMXSoap" binding="tns:GROUPING_WS_ASMXSoap">
<soap:address location="http://srv:13208/GROUPING_WS_ASMX.asmx"/></wsdl:port><wsdl:port name="GROUPING_WS_ASMXSoap12" binding="tns:GROUPING_WS_ASMXSoap12">
<soap12:address location="http://srv:13208/GROUPING_WS_ASMX.asmx"/></wsdl:port><wsdl:port name="GROUPING_WS_ASMXHttpGet" binding="tns:GROUPING_WS_ASMXHttpGet">
<http:address location="http://srv:13208/GROUPING_WS_ASMX.asmx"/></wsdl:port><wsdl:port name="GROUPING_WS_ASMXHttpPost" binding="tns:GROUPING_WS_ASMXHttpPost">
<http:address location="http://srv:13208/GROUPING_WS_ASMX.asmx"/></wsdl:port></wsdl:service></wsdl:definitions>
Any help will be much appreciated.
Best,
Jeppen
Turns out that Silverlight does not like the XHttpPost biding.
So I remvoed this binding in my web.config from the web service and all is up an running.

Generate a Web Service Client in WS-I compliance mode

I'm trying to create a web service client using Visual Studio 2010.
The client works very well if I use the wsdl file in version SOAP V2.
When I set the property WS-I Compliance to Yes in Magento and recompile the web service client in VS2010, it doesn't work!!! Some methods disappear from the resulting WSDL file.
I've found the same problem if I generate a java web service client using the tool wsimport.
Any idea of what's happening?
I ran into the same issue and instead of commenting out the catalogProductAttributeRemove, I actually looked into what was missing and added the additional sections to my wsi.xml file. Thanks to Juanma R. for pointing me in the direction of the file that needed to be corrected.
I referenced the entries for catalogProductAttributeCreate as a reference point for what other sections might need to exist to fix this. I don't really know anything about WSDL, just tried looking for what could be missing.
After I changed the file I refreshed all caches in Magento and confirmed the new entries were showing up in the WSDL file at /index.php/api/v2_soap?wsdl=1. I then removed the web reference that was added to VS 2010 and went through the steps of adding the web reference again. This time after adding it I got no errors.
The version of Magento that I was patching is Magento Enterprise 1.12.0.2 but I expect it's applicable to other versions that show this same error with catalogProductAttributeRemove.
Here is a quick diff I ran of what I changed in the wsi.xml file:
*** Z:\mage-1-12-0-2.dev\htdocs\app\code\core\Mage\Catalog\etc\wsi - Copy.xml backup Tue Jul 3 12:08:31 2012 UTC
--- Z:\mage-1-12-0-2.dev\htdocs\app\code\core\Mage\Catalog\etc\wsi.xml Fri Nov 9 18:40:58 2012 UTC
***************
*** 1509,1520 ****
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="result" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="catalogProductCurrentStoreRequest">
<wsdl:part name="parameters" element="typens:catalogProductCurrentStoreRequestParam" />
</wsdl:message>
<wsdl:message name="catalogProductCurrentStoreResponse">
--- 1509,1540 ----
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="result" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
+
+
+ <!-- Added by Matt Johnson 2012-11-09 to fix VS 2010 support of SOAP reference -->
+ <xsd:element name="catalogProductAttributeRemoveRequestParam">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
+ <xsd:element minOccurs="1" maxOccurs="1" name="attribute" type="xsd:string" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="catalogProductAttributeRemoveResponseParam">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="xsd:boolean" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+
</xsd:schema>
</wsdl:types>
<wsdl:message name="catalogProductCurrentStoreRequest">
<wsdl:part name="parameters" element="typens:catalogProductCurrentStoreRequestParam" />
</wsdl:message>
<wsdl:message name="catalogProductCurrentStoreResponse">
***************
*** 1883,1894 ****
<wsdl:message name="catalogProductAttributeCreateRequest">
<wsdl:part name="parameters" element="typens:catalogProductAttributeCreateRequestParam" />
</wsdl:message>
<wsdl:message name="catalogProductAttributeCreateResponse">
<wsdl:part name="parameters" element="typens:catalogProductAttributeCreateResponseParam" />
</wsdl:message>
<wsdl:portType name="{{var wsdl.handler}}PortType">
<wsdl:operation name="catalogCategoryCurrentStore">
<wsdl:documentation>Set_Get current store view</wsdl:documentation>
<wsdl:input message="typens:catalogCategoryCurrentStoreRequest" />
<wsdl:output message="typens:catalogCategoryCurrentStoreResponse" />
</wsdl:operation>
--- 1903,1923 ----
<wsdl:message name="catalogProductAttributeCreateRequest">
<wsdl:part name="parameters" element="typens:catalogProductAttributeCreateRequestParam" />
</wsdl:message>
<wsdl:message name="catalogProductAttributeCreateResponse">
<wsdl:part name="parameters" element="typens:catalogProductAttributeCreateResponseParam" />
</wsdl:message>
+
+ <!-- Added by Matt Johnson 2012-11-09 to fix VS 2010 support of SOAP reference -->
+ <wsdl:message name="catalogProductAttributeRemoveRequest">
+ <wsdl:part name="parameters" element="typens:catalogProductAttributeRemoveRequestParam" />
+ </wsdl:message>
+ <wsdl:message name="catalogProductAttributeRemoveResponse">
+ <wsdl:part name="parameters" element="typens:catalogProductAttributeRemoveResponseParam" />
+ </wsdl:message>
+
<wsdl:portType name="{{var wsdl.handler}}PortType">
<wsdl:operation name="catalogCategoryCurrentStore">
<wsdl:documentation>Set_Get current store view</wsdl:documentation>
<wsdl:input message="typens:catalogCategoryCurrentStoreRequest" />
<wsdl:output message="typens:catalogCategoryCurrentStoreResponse" />
</wsdl:operation>
***************
*** 2760,2771 ****
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="{{var wsdl.name}}Service">
<wsdl:port name="{{var wsdl.handler}}Port" binding="typens:{{var wsdl.handler}}Binding">
<soap:address location="{{var wsdl.url}}" />
</wsdl:port>
</wsdl:service>
--- 2789,2814 ----
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
+
+
+ <!-- Added by Matt Johnson 2012-11-09 to fix VS 2010 support of SOAP reference -->
+ <wsdl:operation name="catalogProductAttributeRemove">
+ <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="{{var wsdl.name}}Service">
<wsdl:port name="{{var wsdl.handler}}Port" binding="typens:{{var wsdl.handler}}Binding">
<soap:address location="{{var wsdl.url}}" />
</wsdl:port>
</wsdl:service>
There is a mistake in the original Magento Core code, related to the operation "catalogProductAttributeRemove" (module core/Mage/Catalog).
To solve it, I've commented the following operation in the wsi.xml file of the module Catalog
<!--wsdl:operation name="catalogProductAttributeRemove">
<wsdl:documentation>Delete attribute</wsdl:documentation>
<wsdl:input message="typens:catalogProductAttributeRemoveRequest" />
<wsdl:output message="typens:catalogProductAttributeRemoveResponse" />
</wsdl:operation-->
After that the automatic building of a Web Service Client using VS2010 works perfectly!.
I included the diff into the wsi.xml from version 1.7.2 and uploaded it here.
So, if you can't read the diff correct, you can use this file directly.

Should webservices return a value even if the action performed doesn't return a value?

Suppose that the action performed by the procedure , which is called by the webservice , is equivalent to a void method , should it always return a value anyway ?
From WSDL point of view you have two choices:
1:
<wsdl:types>
...
<xs:element name="method1" type="x:MyType1" />
...
<wsdl:message name="msg1_1">
<wsdl:part name="input" element="tns:method1" />
</wsdl:message>
<wsdl:portType name="MyInterface">
<wsdl:operation name="method1">
<wsdl:input name="req" message="tns:msg1_1" />
</wsdl:operation>
...
2:
<wsdl:types>
...
<xs:element name="method2" type="x:MyType2" />
<xs:element name="method2Response">
<xs:complexType>
<xs:sequence />
</xs:complexType>
</xs:element>
...
<wsdl:message name="msg2_1">
<wsdl:part name="input" element="tns:method2" />
</wsdl:message>
<wsdl:message name="msg2_1">
<wsdl:part name="output" element="tns:method2Response" />
</wsdl:message>
<wsdl:portType name="MyInterface">
<wsdl:operation name="method2">
<wsdl:input name="req" message="tns:msg2_1" />
<wsdl:output name="res" message="tns:msg2_2" />
</wsdl:operation>
...
With option 1 you get One-way Operation which may sometimes be a problem becase the client's call returns without the knowledge of comleting the server-side method.
With option 2 you have normal Request-response Operation, you just get (almost) empty SOAP response.
(all above examples use document/literal/wrapped convention)
From implementation point of view, if you use e.g. Apache CXF with JAX-WS you end up with standard, void-returning methods.

how to use return value of soap web service in soap client

I have an soap web service that has a method like
public WsResult doMyJob(String s, Information info);
when I generate a client out of the wsdl, in the client code my webservice's method becomes something like:
public Object doMyJob(String s, Object arg0);
The problem is that I want client to be able to implement/see my custom classes(WsResult and Information) without explicitly defining them in his code.
Is that even possible and if so how?
Thanks
edit:
<?xml version='1.0' encoding='UTF-8'?><wsdl:definitions name="SendSms" targetNamespace="http://webservice.aaa.bbb.com/" xmlns:ns1="http://webservice.aaa.bbb.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://webservice.aaa.bbb.com/" xmlns="http://webservice.aaa.bbb.com/" xmlns:tns="http://impl.webservice.aaa.bbb.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="registerScheduledSms" type="registerScheduledSms" />
<xsd:complexType name="registerScheduledSms">
<xsd:sequence>
<xsd:element minOccurs="0" name="arg0" type="xsd:string" />
<xsd:element minOccurs="0" name="arg1" /> **HERE THERE SHOULD BE xsd definition for my custom class**
<xsd:element minOccurs="0" name="arg2" /> **and here**
<xsd:element minOccurs="0" name="arg3" type="xsd:dateTime" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="registerScheduledSmsResponse" type="registerScheduledSmsResponse" />
<xsd:complexType name="registerScheduledSmsResponse">
<xsd:sequence>
<xsd:element minOccurs="0" name="return" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="registerScheduledSmsResponse">
<wsdl:part element="ns1:registerScheduledSmsResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="registerScheduledSms">
<wsdl:part element="ns1:registerScheduledSms" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="SendSms">
<wsdl:operation name="registerScheduledSms">
<wsdl:input message="ns1:registerScheduledSms" name="registerScheduledSms">
</wsdl:input>
<wsdl:output message="ns1:registerScheduledSmsResponse" name="registerScheduledSmsResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
</wsdl:definitions>
my service code
#WebService(endpointInterface = "com.bbb.aaa.webservice.SendSms")
public class SendSmsImpl implements SendSms {
private DbService dbService;
#Override
public WsResult registerScheduledSms(String applicationId,
ServiceAccount serviceAccount, Sms sms, Date scheduledDate) {
return dbService.addNewScheduledSms(applicationId, serviceAccount, sms, scheduledDate);
}
}
Yes, that's perfectly possible. Your soap client should generate all classes defined in the schema types on your WSDL. You are probable missing something on client generation.
It would help if you specify what are you using for client generation (AXIS, .NET, JAX-WS) and confirm that your WSDL contains schema definitions for WsResult and Information types.

Error Consuming a SOAP Web Service

I am trying to consume a web service that is exposed by [Percussion CMS][1] in order to create content items programmatically. When attempting to add the web reference in Visual Studio 2008, however, Visual Studio alerts with me the following:
The document was understood, but it
could not be processed:
The WSDL document contains links that could not be resolved.
DTD is prohibited in this XML document.
I have no experience working with Percussion CMS, so I haven't a clue where to start to resolve this problem. Is there some Visual Studio setting that I might be able to override to make this work?
I've already requested assistance from the Percussion tech support, but that was Monday and I haven't gotten any useful/helpful information back.
Edit: Just in case this helps resolve the issue, below is the entire WSDL:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="content" targetNamespace="urn:www.percussion.com/6.0.0/content" xmlns:com="urn:www.percussion.com/6.0.0/common" xmlns:con="urn:www.percussion.com/6.0.0/content" xmlns:flt="urn:www.percussion.com/6.0.0/faults" xmlns:ns="urn:www.percussion.com/6.0.0/systemServices" xmlns:ns1="urn:www.percussion.com/6.0.0/uiServices" xmlns:ns2="urn:www.percussion.com/6.0.0/assemblyServices" xmlns:ns3="urn:www.percussion.com/6.0.0/securityServices" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace="urn:www.percussion.com/6.0.0/faults" schemaLocation="../faults.xsd">
</xsd:import>
</xsd:schema>
<xsd:schema targetNamespace="urn:www.percussion.com/6.0.0/content" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="content.xsd"/>
</xsd:schema>
</wsdl:types>
<wsdl:message name="AuthenticationHeader">
<wsdl:part element="com:PSAuthenticationHeader" name="Session"/>
</wsdl:message>
<wsdl:message name="empty"/>
<wsdl:message name="LoadKeywordsRequest">
<wsdl:part element="con:LoadKeywordsRequest" name="LoadKeywordsRequest"/>
</wsdl:message>
<wsdl:message name="LoadKeywordsResponse">
<wsdl:part element="con:LoadKeywordsResponse" name="LoadKeywordsResponse"/>
</wsdl:message>
<wsdl:message name="LoadLocalesRequest">
<wsdl:part element="con:LoadLocalesRequest" name="LoadLocalesRequest"/>
</wsdl:message>
<wsdl:message name="LoadLocalesResponse">
<wsdl:part element="con:LoadLocalesResponse" name="LoadLocalesResponse"/>
</wsdl:message>
<wsdl:message name="LoadTranslationSettingsResponse">
<wsdl:part element="con:LoadTranslationSettingsResponse" name="LoadTranslationSettingsResponse"/>
</wsdl:message>
<wsdl:message name="LoadContentTypesRequest">
<wsdl:part element="con:LoadContentTypesRequest" name="LoadContentTypesRequest"/>
</wsdl:message>
<wsdl:message name="LoadContentTypesResponse">
<wsdl:part element="con:LoadContentTypesResponse" name="LoadContentTypesResponse"/>
</wsdl:message>
<wsdl:message name="CreateItemsRequest">
<wsdl:part element="con:CreateItemsRequest" name="CreateItemsRequest"/>
</wsdl:message>
<wsdl:message name="CreateItemsResponse">
<wsdl:part element="con:CreateItemsResponse" name="CreateItemsResponse"/>
</wsdl:message>
<wsdl:message name="FindItemsRequest">
<wsdl:part element="con:FindItemsRequest" name="FindItemsRequest"/>
</wsdl:message>
<wsdl:message name="FindItemsResponse">
<wsdl:part element="con:FindItemsResponse" name="FindItemsResponse"/>
</wsdl:message>
<wsdl:message name="LoadItemsRequest">
<wsdl:part element="con:LoadItemsRequest" name="LoadItemsRequest"/>
</wsdl:message>
<wsdl:message name="LoadItemsResponse">
<wsdl:part element="con:LoadItemsResponse" name="LoadItemsResponse"/>
</wsdl:message>
<wsdl:message name="SaveItemsRequest">
<wsdl:part element="con:SaveItemsRequest" name="SaveItemsRequest"/>
</wsdl:message>
<wsdl:message name="SaveItemsResponse">
<wsdl:part element="con:SaveItemsResponse" name="SaveItemsResponse"/>
</wsdl:message>
<wsdl:message name="DeleteItemsRequest">
<wsdl:part element="con:DeleteItemsRequest" name="DeleteItemsRequest"/>
</wsdl:message>
<wsdl:message name="ViewItemsRequest">
<wsdl:part element="con:ViewItemsRequest" name="ViewItemsRequest"/>
</wsdl:message>
<wsdl:message name="ViewItemsResponse">
<wsdl:part element="con:ViewItemsResponse" name="ViewItemsResponse"/>
</wsdl:message>
<wsdl:message name="PrepareForEditRequest">
<wsdl:part element="con:PrepareForEditRequest" name="PrepareForEditRequest"/>
</wsdl:message>
<wsdl:message name="PrepareForEditResponse">
<wsdl:part element="con:PrepareForEditResponse" name="PrepareForEditResponse"/>
</wsdl:message>
<wsdl:message name="ReleaseFromEditRequest">
<wsdl:part element="con:ReleaseFromEditRequest" name="ReleaseFromEditRequest"/>
</wsdl:message>
<wsdl:message name="NewCopiesRequest">
<wsdl:part element="con:NewCopiesRequest" name="NewCopiesRequest"/>
</wsdl:message>
<wsdl:message name="NewCopiesResponse">
<wsdl:part element="con:NewCopiesResponse" name="NewCopiesResponse"/>
</wsdl:message>
<wsdl:message name="NewPromotableVersionsRequest">
<wsdl:part element="con:NewPromotableVersionsRequest" name="NewPromotableVersionsRequest"/>
</wsdl:message>
<wsdl:message name="NewPromotableVersionsResponse">
<wsdl:part element="con:NewPromotableVersionsResponse" name="NewPromotableVersionsResponse"/>
</wsdl:message>
<wsdl:message name="NewTranslationsRequest">
<wsdl:part element="con:NewTranslationsRequest" name="NewTranslationsRequest"/>
</wsdl:message>
<wsdl:message name="NewTranslationsResponse">
<wsdl:part element="con:NewTranslationsResponse" name="NewTranslationsResponse"/>
</wsdl:message>
<wsdl:message name="FindRevisionsRequest">
<wsdl:part element="con:FindRevisionsRequest" name="FindRevisionsRequest"/>
</wsdl:message>
<wsdl:message name="FindRevisionsResponse">
<wsdl:part element="con:FindRevisionsResponse" name="FindRevisionsResponse"/>
</wsdl:message>
<wsdl:message name="PromoteRevisionsRequest">
<wsdl:part element="con:PromoteRevisionsRequest" name="PromoteRevisionsRequest"/>
</wsdl:message>
<wsdl:message name="CheckinItemsRequest">
<wsdl:part element="con:CheckinItemsRequest" name="CheckinItemsRequest"/>
</wsdl:message>
<wsdl:message name="CheckoutItemsRequest">
<wsdl:part element="con:CheckoutItemsRequest" name="CheckoutItemsRequest"/>
</wsdl:message>
<wsdl:message name="GetAssemblyUrlsRequest">
<wsdl:part element="con:GetAssemblyUrlsRequest" name="GetAssemblyUrlsRequest"/>
</wsdl:message>
<wsdl:message name="GetAssemblyUrlsResponse">
<wsdl:part element="con:GetAssemblyUrlsResponse" name="GetAssemblyUrlsResponse"/>
</wsdl:message>
<wsdl:message name="CreateChildEntriesRequest">
<wsdl:part element="con:CreateChildEntriesRequest" name="CreateChildEntriesRequest"/>
</wsdl:message>
<wsdl:message name="CreateChildEntriesResponse">
<wsdl:part element="con:CreateChildEntriesResponse" name="CreateChildEntriesResponse"/>
</wsdl:message>
<wsdl:message name="LoadChildEntriesRequest">
<wsdl:part element="con:LoadChildEntriesRequest" name="LoadChildEntriesRequest"/>
</wsdl:message>
<wsdl:message name="LoadChildEntriesResponse">
<wsdl:part element="con:LoadChildEntriesResponse" name="LoadChildEntriesResponse"/>
</wsdl:message>
<wsdl:message name="SaveChildEntriesRequest">
<wsdl:part element="con:SaveChildEntriesRequest" name="SaveChildEntriesRequest"/>
</wsdl:message>
<wsdl:message name="DeleteChildEntriesRequest">
<wsdl:part element="con:DeleteChildEntriesRequest" name="DeleteChildEntriesRequest"/>
</wsdl:message>
<wsdl:message name="ReorderChildEntriesRequest">
<wsdl:part element="con:ReorderChildEntriesRequest" name="ReorderChildEntriesRequest"/>
</wsdl:message>
<wsdl:message name="AddContentRelationsRequest">
<wsdl:part element="con:AddContentRelationsRequest" name="AddContentRelationsRequest"/>
</wsdl:message>
<wsdl:message name="AddContentRelationsResponse">
<wsdl:part element="con:AddContentRelationsResponse" name="AddContentRelationsResponse"/>
</wsdl:message>
<wsdl:message name="LoadContentRelationsRequest">
<wsdl:part element="con:LoadContentRelationsRequest" name="LoadContentRelationsRequest"/>
</wsdl:message>
<wsdl:message name="LoadContentRelationsResponse">
<wsdl:part element="con:LoadContentRelationsResponse" name="LoadContentRelationsResponse"/>
</wsdl:message>
<wsdl:message name="SaveContentRelationsRequest">
<wsdl:part element="con:SaveContentRelationsRequest" name="SaveContentRelationsRequest"/>
</wsdl:message>
<wsdl:message name="DeleteContentRelationsRequest">
<wsdl:part element="con:DeleteContentRelationsRequest" name="DeleteContentRelationsRequest"/>
</wsdl:message>
<wsdl:message name="ReorderContentRelationsRequest">
<wsdl:part element="con:ReorderContentRelationsRequest" name="ReorderContentRelationsRequest"/>
</wsdl:message>
<wsdl:message name="FindChildItemsRequest">
<wsdl:part element="con:FindChildItemsRequest" name="FindChildItemsRequest"/>
</wsdl:message>
<wsdl:message name="FindChildItemsResponse">
<wsdl:part element="con:FindChildItemsResponse" name="FindChildItemsResponse"/>
</wsdl:message>
<wsdl:message name="FindParentItemsRequest">
<wsdl:part element="con:FindParentItemsRequest" name="FindParentItemsRequest"/>
</wsdl:message>
<wsdl:message name="FindParentItemsResponse">
<wsdl:part element="con:FindParentItemsResponse" name="FindParentItemsResponse"/>
</wsdl:message>
<wsdl:message name="LoadFoldersRequest">
<wsdl:part element="con:LoadFoldersRequest" name="LoadFoldersRequest"/>
</wsdl:message>
<wsdl:message name="LoadFoldersResponse">
<wsdl:part element="con:LoadFoldersResponse" name="LoadFoldersResponse"/>
</wsdl:message>
<wsdl:message name="SaveFoldersRequest">
<wsdl:part element="con:SaveFoldersRequest" name="SaveFoldersRequest"/>
</wsdl:message>
<wsdl:message name="SaveFoldersResponse">
<wsdl:part element="con:SaveFoldersResponse" name="SaveFoldersResponse"/>
</wsdl:message>
<wsdl:message name="DeleteFoldersRequest">
<wsdl:part element="con:DeleteFoldersRequest" name="DeleteFoldersRequest"/>
</wsdl:message>
<wsdl:message name="AddFolderRequest">
<wsdl:part element="con:AddFolderRequest" name="AddFolderRequest"/>
</wsdl:message>
<wsdl:message name="AddFolderResponse">
<wsdl:part element="con:AddFolderResponse" name="AddFolderResponse"/>
</wsdl:message>
<wsdl:message name="AddFolderTreeRequest">
<wsdl:part element="con:AddFolderTreeRequest" name="AddFolderTreeRequest"/>
</wsdl:message>
<wsdl:message name="AddFolderTreeResponse">
<wsdl:part element="con:AddFolderTreeResponse" name="AddFolderTreeResponse"/>
</wsdl:message>
<wsdl:message name="FindFolderChildrenRequest">
<wsdl:part element="con:FindFolderChildrenRequest" name="FindFolderChildrenRequest"/>
</wsdl:message>
<wsdl:message name="FindFolderChildrenResponse">
<wsdl:part element="con:FindFolderChildrenResponse" name="FindFolderChildrenResponse"/>
</wsdl:message>
<wsdl:message name="AddFolderChildrenRequest">
<wsdl:part element="con:AddFolderChildrenRequest" name="AddFolderChildrenRequest"/>
</wsdl:message>
<wsdl:message name="RemoveFolderChildrenRequest">
<wsdl:part element="con:RemoveFolderChildrenRequest" name="RemoveFolderChildrenRequest"/>
</wsdl:message>
<wsdl:message name="MoveFolderChildrenRequest">
<wsdl:part element="con:MoveFolderChildrenRequest" name="MoveFolderChildrenRequest"/>
</wsdl:message>
<wsdl:message name="FindFolderPathRequest">
<wsdl:part element="con:FindFolderPathRequest" name="FindFolderPathRequest"/>
</wsdl:message>
<wsdl:message name="FindFolderPathResponse">
<wsdl:part element="con:FindFolderPathResponse" name="FindFolderPathResponse"/>
</wsdl:message>
<wsdl:message name="FindPathIdsRequest">
<wsdl:part element="con:FindPathIdsRequest" name="FindPathIdsRequest"/>
</wsdl:message>
<wsdl:message name="FindPathIdsResponse">
<wsdl:part element="con:FindPathIdsResponse" name="FindPathIdsResponse"/>
</wsdl:message>
<wsdl:message name="ContractViolationFaultMessage">
<wsdl:part element="flt:PSContractViolationFault" name="fault"/>
</wsdl:message>
<wsdl:message name="InvalidSessionFaultMessage">
<wsdl:part element="flt:PSInvalidSessionFault" name="fault"/>
</wsdl:message>
<wsdl:message name="NotAuthorizedFaultMessage">
<wsdl:part element="flt:PSNotAuthorizedFault" name="fault"/>
</wsdl:message>
<wsdl:message name="UnknownContentTypeFaultMessage">
<wsdl:part element="flt:PSUnknownContentTypeFault" name="fault"/>
</wsdl:message>
<wsdl:message name="UnknownChildFaultMessage">
<wsdl:part element="flt:PSUnknownChildFault" name="fault"/>
</wsdl:message>
<wsdl:message name="ErrorResultsFaultMessage">
<wsdl:part element="flt:PSErrorResultsFault" name="fault"/>
</wsdl:message>
<wsdl:message name="ErrorsFaultMessage">
<wsdl:part element="flt:PSErrorsFault" name="fault"/>
</wsdl:message>
<wsdl:portType name="content">
<wsdl:operation name="LoadKeywords">
<wsdl:input message="con:LoadKeywordsRequest"/>
<wsdl:output message="con:LoadKeywordsResponse"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:NotAuthorizedFaultMessage" name="NotAuthorizedFault"/>
</wsdl:operation>
<wsdl:operation name="LoadLocales">
<wsdl:input message="con:LoadLocalesRequest"/>
<wsdl:output message="con:LoadLocalesResponse"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:NotAuthorizedFaultMessage" name="NotAuthorizedFault"/>
</wsdl:operation>
<wsdl:operation name="LoadTranslationSettings">
<wsdl:input message="con:empty"/>
<wsdl:output message="con:LoadTranslationSettingsResponse"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:NotAuthorizedFaultMessage" name="NotAuthorizedFault"/>
</wsdl:operation>
<wsdl:operation name="LoadContentTypes">
<wsdl:input message="con:LoadContentTypesRequest"/>
<wsdl:output message="con:LoadContentTypesResponse"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:NotAuthorizedFaultMessage" name="NotAuthorizedFault"/>
</wsdl:operation>
<wsdl:operation name="CreateItems">
<wsdl:input message="con:CreateItemsRequest"/>
<wsdl:output message="con:CreateItemsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:UnknownContentTypeFaultMessage" name="UnknownContentTypeFault"/>
<wsdl:fault message="con:NotAuthorizedFaultMessage" name="NotAuthorizedFault"/>
</wsdl:operation>
<wsdl:operation name="FindItems">
<wsdl:input message="con:FindItemsRequest"/>
<wsdl:output message="con:FindItemsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
</wsdl:operation>
<wsdl:operation name="LoadItems">
<wsdl:input message="con:LoadItemsRequest"/>
<wsdl:output message="con:LoadItemsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorResultsFaultMessage" name="ErrorResultsFault"/>
</wsdl:operation>
<wsdl:operation name="SaveItems">
<wsdl:input message="con:SaveItemsRequest"/>
<wsdl:output message="con:SaveItemsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorResultsFaultMessage" name="ErrorResultsFault"/>
</wsdl:operation>
<wsdl:operation name="DeleteItems">
<wsdl:input message="con:DeleteItemsRequest"/>
<wsdl:output message="con:empty"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorsFaultMessage" name="ErrorsFault"/>
</wsdl:operation>
<wsdl:operation name="ViewItems">
<wsdl:input message="con:ViewItemsRequest"/>
<wsdl:output message="con:ViewItemsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorResultsFaultMessage" name="ErrorResultsFault"/>
</wsdl:operation>
<wsdl:operation name="PrepareForEdit">
<wsdl:input message="con:PrepareForEditRequest"/>
<wsdl:output message="con:PrepareForEditResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorResultsFaultMessage" name="ErrorResultsFault"/>
</wsdl:operation>
<wsdl:operation name="ReleaseFromEdit">
<wsdl:input message="con:ReleaseFromEditRequest"/>
<wsdl:output message="con:empty"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorsFaultMessage" name="ErrorsFault"/>
</wsdl:operation>
<wsdl:operation name="NewCopies">
<wsdl:input message="con:NewCopiesRequest"/>
<wsdl:output message="con:NewCopiesResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorResultsFaultMessage" name="ErrorResultsFault"/>
</wsdl:operation>
<wsdl:operation name="NewPromotableVersions">
<wsdl:input message="con:NewPromotableVersionsRequest"/>
<wsdl:output message="con:NewPromotableVersionsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorResultsFaultMessage" name="ErrorResultsFault"/>
</wsdl:operation>
<wsdl:operation name="NewTranslations">
<wsdl:input message="con:NewTranslationsRequest"/>
<wsdl:output message="con:NewTranslationsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorResultsFaultMessage" name="ErrorResultsFault"/>
</wsdl:operation>
<wsdl:operation name="FindRevisions">
<wsdl:input message="con:FindRevisionsRequest"/>
<wsdl:output message="con:FindRevisionsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
</wsdl:operation>
<wsdl:operation name="PromoteRevisions">
<wsdl:input message="con:PromoteRevisionsRequest"/>
<wsdl:output message="con:empty"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorsFaultMessage" name="ErrorsFault"/>
</wsdl:operation>
<wsdl:operation name="CheckinItems">
<wsdl:input message="con:CheckinItemsRequest"/>
<wsdl:output message="con:empty"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorsFaultMessage" name="ErrorsFault"/>
</wsdl:operation>
<wsdl:operation name="CheckoutItems">
<wsdl:input message="con:CheckoutItemsRequest"/>
<wsdl:output message="con:empty"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorsFaultMessage" name="ErrorsFault"/>
</wsdl:operation>
<wsdl:operation name="GetAssemblyUrls">
<wsdl:input message="con:GetAssemblyUrlsRequest"/>
<wsdl:output message="con:GetAssemblyUrlsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
</wsdl:operation>
<wsdl:operation name="CreateChildEntries">
<wsdl:input message="con:CreateChildEntriesRequest"/>
<wsdl:output message="con:CreateChildEntriesResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:UnknownChildFaultMessage" name="UnknownChildFault"/>
</wsdl:operation>
<wsdl:operation name="LoadChildEntries">
<wsdl:input message="con:LoadChildEntriesRequest"/>
<wsdl:output message="con:LoadChildEntriesResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:UnknownChildFaultMessage" name="UnknownChildFault"/>
<wsdl:fault message="con:ErrorResultsFaultMessage" name="ErrorResultsFault"/>
</wsdl:operation>
<wsdl:operation name="SaveChildEntries">
<wsdl:input message="con:SaveChildEntriesRequest"/>
<wsdl:output message="con:empty"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:UnknownChildFaultMessage" name="UnknownChildFault"/>
<wsdl:fault message="con:ErrorsFaultMessage" name="ErrorsFault"/>
</wsdl:operation>
<wsdl:operation name="DeleteChildEntries">
<wsdl:input message="con:DeleteChildEntriesRequest"/>
<wsdl:output message="con:empty"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:UnknownChildFaultMessage" name="UnknownChildFault"/>
<wsdl:fault message="con:ErrorsFaultMessage" name="ErrorsFault"/>
</wsdl:operation>
<wsdl:operation name="ReorderChildEntries">
<wsdl:input message="con:ReorderChildEntriesRequest"/>
<wsdl:output message="con:empty"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:UnknownChildFaultMessage" name="UnknownChildFault"/>
<wsdl:fault message="con:ErrorsFaultMessage" name="ErrorsFault"/>
</wsdl:operation>
<wsdl:operation name="AddContentRelations">
<wsdl:input message="con:AddContentRelationsRequest"/>
<wsdl:output message="con:AddContentRelationsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:NotAuthorizedFaultMessage" name="NotAuthorizedFault"/>
This is way too late to help you, but maybe not for the next guy....
My understanding is that .NET and J2EE webservices use slightly different dialects of WSDL. Visual Studio doesn't understand the other one. (The great thing about standards is that there are so many of them to choose from....)
As of v6.7 (and probably earlier), there are two sample applications for communicating with Percussion via the web services, one for Java, one for C#. The C# version can be found in:
\WebServices\6.0.0\sample\loader\csharp
Under that directory, you will find "Web References" and below that "RxWebServices."
The RxWebServices directory contains WSDL which allows your .NET code to work with Percussion.