I'm new in using axis2 and I'trying to generate java classes from a wsdl.
Unfotunately I get the following exception :
org.apache.axis2.wsdl.codegen.CodeGenerationException: Error parsing WSDL
I cannot figure out how to find the problem.
I work with axis2-1.6.2 on jdk1.7 and win7.
Any hint would be appreciated.
Flavio
here is my wsdl :
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
name="IFX170PortType"
targetNamespace="urn:ifxforum-org:WSDL:1:PortType"
xmlns:tns="urn:ifxforum-org:WSDL:1:PortType"
xmlns:types="urn:ifxforum-org:WSDL:1:PortType:types"
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
targetNamespace="urn:ifxforum-org:WSDL:1:PortType:types"
xmlns:ifx="urn:ifxforum-org:XSD:1"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xsd:import namespace="urn:ifxforum-org:XSD:1"
schemaLocation="IFX170.xsd"/>
<xsd:element name="DoIFXRq">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ifx:IFX" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DoIFXRs">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ifx:IFX" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="DoIFXRqMsg">
<wsdl:part name="parameters" element="types:DoIFXRq"/>
</wsdl:message>
<wsdl:message name="DoIFXRsMsg">
<wsdl:part name="result" element="types:DoIFXRs"/>
</wsdl:message>
<wsdl:portType name="IFX170PortType">
<wsdl:operation name="DoIFX">
<wsdl:input message="tns:DoIFXRqMsg"/>
<wsdl:output message="tns:DoIFXRsMsg"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="IFX170SOAPBinding" type="IFX170PortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="DoIFX">
<soap:operation style="document" soapAction="getDoIFX" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="IFX170Service">
<wsdl:port name="IFX170SOAPPort" binding="IFX170SOAPBinding">
<soap:address location="http://localhost:8080/axis2/services /StockQuoteService" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
If still having issues, try the following updates to the WSDL to ensure that the related entities within the WSDL are properly referenced:
<wsdl:binding name="IFX170SOAPBinding" type="tns:IFX170PortType">
<wsdl:service name="IFX170Service">
<wsdl:port name="IFX170SOAPPort" binding="tns:IFX170SOAPBinding">
Note the use of the 'tns:' prefix in the type and binding attributes respectively.
Related
Setting up a webservice on my Symfony server, I follow this guide:
https://symfony.com/doc/current/controller/soap_web_service.html
Example given is working well, with this hello fonction:
public function hello($name)
{
return 'Hello, '.$name;
}
So I've tried to complete this webservice with this bye function:
public function bye($name)
{
return 'Goodbye, '.$name;
}
And here is my wsdl:
<?xml version="1.0" encoding="ISO-8859-1"?>
<definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="urn:arnleadservicewsdl"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="urn:helloservicewsdl">
<types>
<xsd:schema targetNamespace="urn:hellowsdl">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
</xsd:schema>
</types>
<message name="helloRequest">
<part name="name" type="xsd:string" />
</message>
<message name="helloResponse">
<part name="return" type="xsd:string" />
</message>
<message name="byeRequest">
<part name="name" type="xsd:string" />
</message>
<message name="byeResponse">
<part name="return" type="xsd:string" />
</message>
<portType name="hellowsdlPortType">
<operation name="hello">
<documentation>Hello World</documentation>
<input message="tns:helloRequest"/>
<output message="tns:helloResponse"/>
</operation>
<operation name="bye">
<documentation>Goodbye World</documentation>
<input message="tns:byeRequest"/>
<output message="tns:byeResponse"/>
</operation>
</portType>
<binding name="hellowsdlBinding" type="tns:hellowsdlPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="hello">
<soap:operation soapAction="urn:arnleadservicewsdl#hello" style="rpc"/>
<input>
<soap:body use="encoded" namespace="urn:hellowsdl"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="urn:hellowsdl"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="bye">
<soap:operation soapAction="urn:arnleadservicewsdl#bye" style="rpc"/>
<input>
<soap:body use="encoded" namespace="urn:hellowsdl"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="urn:hellowsdl"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service name="hellowsdl">
<port name="hellowsdlPort" binding="tns:hellowsdlBinding">
<soap:address location="http://10.0.0.42/esi/soap" />
</port>
</service>
</definitions>
Hello function is still working, but each time i call bye function, I get an error:
Fatal error: Uncaught SoapFault exception: [Client] looks like we got no XML
Where am I wrong?
Ok, first I have rewritten my WSDL with help of https://www.wsdl-analyzer.com/. Here is my new WSDL:
<?xml version="1.0" encoding="ISO-8859-1"?>
<wsdl:definitions name="helloServiceController"
targetNamespace="urn:helloServiceControllerwsdl"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap = "http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="urn:helloServiceControllerwsdl">
<wsdl:types>
<xsd:schema targetNamespace="urn:helloServiceControllerwsdl">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
</xsd:schema>
</wsdl:types>
<wsdl:message name="helloRequest">
<wsdl:part name="name" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="helloResponse">
<wsdl:part name="return" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="byeRequest">
<wsdl:part name="name" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="byeResponse">
<wsdl:part name="return" type="xsd:string"/>
</wsdl:message>
<wsdl:portType name="helloServicePortType">
<wsdl:operation name="hello">
<wsdl:documentation>Hello World</wsdl:documentation>
<wsdl:input message="tns:helloRequest"/>
<wsdl:output message="tns:helloResponse"/>
</wsdl:operation>
<wsdl:operation name="bye">
<wsdl:documentation>Bye World</wsdl:documentation>
<wsdl:input message="tns:byeRequest"/>
<wsdl:output message="tns:byeResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="helloServiceBinding" type="tns:helloServicePortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="hello">
<soap:operation soapAction="urn:helloServiceControllerwsdl#hello" style="rpc"/>
<wsdl:input>
<soap:body use="encoded" namespace="urn:helloServiceControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:input>
<wsdl:output>
<soap:body use="encoded" namespace="urn:helloServiceControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="bye">
<soap:operation soapAction="urn:helloServiceControllerwsdl#bye" style="rpc"/>
<wsdl:input>
<soap:body use="encoded" namespace="urn:helloServiceControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:input>
<wsdl:output>
<soap:body use="encoded" namespace="urn:helloServiceControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="helloService">
<wsdl:port name="helloServicePort" binding="tns:helloServiceBinding">
<soap:address location="http://10.0.0.42/esi/soap"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
After that, it was still not working and even hello function was not working. After pulling my hair for a while, I simply restarted my server and it was good. Probably a cache problem!
i'm trying to develop a jax-ws webservice based on a pl/sql package using the toplink DB WS Provider, the problem is that my procedure returns a table array and the return message is not what i was expecting.
the wsdl generated is the following:
<?xml version='1.0' encoding='UTF-8'?><!-- Published by JAX-WS RI at http://jax- ws.dev.java.net. RI's version is Oracle JAX-WS 2.1.5. --><wsdl:definitions xmlns:ns1="http://clientwstop/testeWS" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://clientwstop/testeWSService" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" name="testeWSService" targetNamespace="http://clientwstop/testeWSService">
<wsdl:types>
<xsd:schema xmlns:tns="http://clientwstop/testeWSService" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://clientwstop/testeWSService" elementFormDefault="qualified">
<xsd:import schemaLocation="http://localhost:7101/clientWStop-clientWStop-context-root/testeWS?xsd=1" namespace="http://clientwstop/testeWS"/>
<xsd:complexType name="extconResponseType">
<xsd:sequence>
<xsd:element name="result">
<xsd:complexType>
<xsd:sequence>
<xsd:any/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="extconRequestType">
<xsd:sequence>
<xsd:element name="ENT_COD" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="extcon" type="tns:extconRequestType"/>
<xsd:element name="extconResponse" type="tns:extconResponseType"/>
</xsd:schema>
</wsdl:types>
<wsdl:message name="extconRequest">
<wsdl:part name="extconRequest" element="tns:extcon"/>
</wsdl:message>
<wsdl:message name="extconResponse">
<wsdl:part name="extconResponse" element="tns:extconResponse"/>
</wsdl:message>
<wsdl:portType name="testeWSService_Interface">
<wsdl:operation name="extcon">
<wsdl:input message="tns:extconRequest"/>
<wsdl:output message="tns:extconResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="testeWSService_SOAP_HTTP" type="tns:testeWSService_Interface">
<soap12:binding style="document" transport="http://www.w3.org/2003/05/soap/bindings/HTTP/"/>
<wsdl:operation name="extcon">
<soap12:operation soapAction="http://clientwstop/testeWSService:extcon" soapActionRequired="false"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="testeWSService">
<wsdl:port name="testeWSServicePort" binding="tns:testeWSService_SOAP_HTTP">
<soap12:address location="http://localhost:7101/clientWStop-clientWStop-context- root/testeWS"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
and the result is this one:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Body>
<srvc:extconResponse xmlns:srvc="http://clientwstop/testeWSService">
<srvc:result>
<simple-xml-format>
<simple-xml>
<result>weblogic.jdbc.wrapper.Struct_oracle_sql_STRUCT#11</result>
</simple-xml>
</simple-xml-format>
</srvc:result>
</srvc:extconResponse>
</env:Body>
</env:Envelope>
Does any one tried to develop pl/sql webservices like this? what i'm doing wrong?
regards
I'm trying to do the same thing. Here is the best solution I have found so far, and another is found here
I have created a WSDL to create a greeting service. Given below is the WSDL.
I am using thsi wsdl to create a generate and expose a web-service using the cxf:proxy-service in mule.
This is giving me errors.
Please review and help me undertand what is the problem with this WSDL.
<?xml version='1.0' encoding='UTF-8'?>
<wsdl:definitions name="HelloService"
targetNamespace="http://example.org/HelloService"
xmlns:tns="http://example.org/HelloService"
xmlns:ns1="http://schemas.xmlsoap.org/soap/http"
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 targetNamespace="http://example.org/HelloService" >
<xsd:element name="LastName">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="lName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="FirstName">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="fName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Greeting">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="greet" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="shortRequest">
<wsdl:part type="tns:LastName" name="lastName"/>
</wsdl:message>
<wsdl:message name="fullRequest">
<wsdl:part type="tns:FirstName" name="firstName"/>
<wsdl:part type="tns:LastName" name="lastName"/>
</wsdl:message>
<wsdl:message name="greetingResponse">
<wsdl:part type="tns:greeting" name="greetings"/>
</wsdl:message>
<wsdl:portType name="HelloServicePortType">
<wsdl:operation name="simpleGreeting">
<wsdl:input message="tns:shortRequest" name="shortRequest" />
<wsdl:output message="tns:greetingResponse" name="greetingResponse" />
</wsdl:operation>
<wsdl:operation name="fullGreeting">
<wsdl:input message="tns:fullRequest" name="fullRequest" />
<wsdl:output message="tns:greetingResponse" name="greetingResponseFull" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="HelloServiceSOAP" type="tns:HelloServicePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="simpleGreeting">
<soap:operation soapAction="" style="document" />
<wsdl:input name="shortRequest">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="greetingResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="fullGreeting">
<soap:operation soapAction="" style="document" />
<wsdl:input name="fullRequest">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="greetingResponseFull">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ProxyService">
<wsdl:port binding="tns:HelloServiceSOAP" name="HelloServiceSOAPB">
<soap:address location="http://localhost:8080/HelloService" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Please help me if there is something wrong in my WSDL.
It is not working when I use it in mule cxf:proxy-service.
FGiven below si the Mule Flow which is using this WSDL to expose service.
<flow name="WS_In">
<http:inbound-endpoint address="http://localhost:8080/HelloService" exchange-pattern="request-response">
<cxf:proxy-service wsdlLocation="classpath:globalid3.wsdl" namespace="http://example.org/HelloService" service="ProxyService" />
</http:inbound-endpoint>
<component>
<prototype-object class="com.example.ServiceProxy">
</prototype-object>
</component>
<echo-component></echo-component>
<logger level="INFO" />
</flow>
and the Error is :
org.mule.api.lifecycle.LifecycleException: Lifecycle Manager 'WS_In.stage1' phase 'start' does not support phase 'dispose'
at org.mule.lifecycle.AbstractLifecycleManager.invokePhase(AbstractLifecycleManager.java:156)
There is a casing issue in your WSDL. Instead of:
<wsdl:message name="greetingResponse">
<wsdl:part type="tns:greeting" name="greetings"/>
</wsdl:message>
you should have:
<wsdl:message name="greetingResponse">
<wsdl:part type="tns:Greeting" name="greetings"/>
</wsdl:message>
With this fixed, the following produces a web service that works fine when called from SOAPui:
<flow name="WS_In">
<http:inbound-endpoint address="http://localhost:8080/HelloService"
exchange-pattern="request-response">
<cxf:proxy-service wsdlLocation="classpath:globalid3.wsdl"
namespace="http://example.org/HelloService" service="ProxyService" />
</http:inbound-endpoint>
<custom-processor class="com.example.ServiceProxy" />
</flow>
Message processor:
package com.example;
import javax.xml.namespace.QName;
import org.apache.commons.lang.StringEscapeUtils;
import org.mule.api.MuleEvent;
import org.mule.api.MuleException;
import org.mule.api.processor.MessageProcessor;
public class ServiceProxy implements MessageProcessor
{
private final static QName SIMPLE_GREETING = new QName("http://example.org/HelloService",
"simpleGreeting");
public MuleEvent process(final MuleEvent event) throws MuleException
{
final QName operation = event.getFlowVariable("cxf_operation");
if (operation.equals(SIMPLE_GREETING))
{
final String lastName = event.getMuleContext()
.getExpressionLanguage()
.evaluate("xpath('/lastName').text", event);
final String responseXml = "<greetings><greet>Hi " + StringEscapeUtils.escapeXml(lastName)
+ "</greet></greetings>";
event.getMessage().setPayload(responseXml);
return event;
}
throw new UnsupportedOperationException(operation.getLocalPart() + " " + operation.getNamespaceURI()
+ " " + operation.getPrefix());
}
}
There is one way to do this using cxf:jaxws-service, but you'll need to generate the service class. Take a look here on how to do this.
After that you can configure the service in a very simple way.
<cxf:jaxws-service
serviceClass="mypackage.webservices.MyServicePortType"
validationEnabled="false">
</cxf:jaxws-service>
The flow that is working is as below.
<flow name="WS_In">
<http:inbound-endpoint address="http://localhost:8080/HelloService" exchange-pattern="request-response">
<cxf:proxy-service wsdlLocation="classpath:helloservice.wsdl" namespace="http://example.org/HelloService" service="ProxyService" />
</http:inbound-endpoint>
<component>
<prototype-object class="com.example.ServiceProxy">
</prototype-object>
</component>
<echo-component></echo-component>
<logger level="INFO" />
</flow>
And the WSDL is
<?xml version='1.0' encoding='UTF-8'?>
<wsdl:definitions name="HelloService"
targetNamespace="http://example.org/HelloService"
xmlns:tns="http://example.org/HelloService"
xmlns:ns1="http://schemas.xmlsoap.org/soap/http"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:message name="shortRequest">
<wsdl:part type="xsd:string" name="lastName"/>
</wsdl:message>
<wsdl:message name="fullRequest">
<wsdl:part type="xsd:string" name="firstName"/>
<wsdl:part type="xsd:string" name="lastName"/>
</wsdl:message>
<wsdl:message name="greetingResponse">
<wsdl:part type="xsd:string" name="greetings"/>
</wsdl:message>
<wsdl:portType name="HelloServicePortType">
<wsdl:operation name="simpleGreeting">
<wsdl:input message="tns:shortRequest" name="shortRequest" />
<wsdl:output message="tns:greetingResponse" name="greetingResponse" />
</wsdl:operation>
<wsdl:operation name="fullGreeting">
<wsdl:input message="tns:fullRequest" name="fullRequest" />
<wsdl:output message="tns:greetingResponse" name="greetingResponseFull" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="HelloServiceSOAP" type="tns:HelloServicePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="simpleGreeting">
<soap:operation soapAction="" style="document" />
<wsdl:input name="shortRequest">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="greetingResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="fullGreeting">
<soap:operation soapAction="" style="document" />
<wsdl:input name="fullRequest">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="greetingResponseFull">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ProxyService">
<wsdl:port binding="tns:HelloServiceSOAP" name="HelloServiceSOAPB">
<soap:address location="http://localhost:8080/HelloService" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Thanks everyone for your help and support.
Can Anyone tell me way to version Wsdl contracts(wsdl first service) for major and minor versions.any running example will be very helpful.
The way I m following to version my wsdl is this.I am following Iona webservices versioning guidlines
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="ProductServiceImplServicev2"
targetNamespace="http://service.dtechtalkcenter.com/servicev2"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://service.dtechtalkcenter.com/servicev2"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" `enter code here`
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:v2_0="http://service.dtechtalkcenter.com/servicev2.0"
xmlns:v2_1="http://service.dtechtalkcenter.com/servicev2.1">
<wsdl:types>
<xsd:schema elementFormDefault="unqualified" targetNamespace="http://service.dtechtalkcenter.com/servicev2.0">
<xsd:element name="addProduct" type="v2_0:addProduct"/>
<xsd:element name="addProductResponse" type="v2_0:addProductResponse"/>
<xsd:element name="getProducts" type="v2_0:getProducts"/>
<xsd:element name="getProductsResponse" type="v2_0:getProductsResponse"/>
<xsd:complexType name="getProducts">
<xsd:sequence/>
</xsd:complexType>
<xsd:complexType name="getProductsResponse">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="return" type="v2_0:product"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="product">
<xsd:sequence>
<xsd:element name="cast" type="xsd:double"/>
<xsd:element minOccurs="0" name="productCategory" type="xsd:string"/>
<xsd:element minOccurs="0" name="productDetails" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="addProduct">
<xsd:sequence>
<xsd:element minOccurs="0" name="product" type="v2_0:product"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="addProductResponse">
<xsd:sequence/>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="addProductResponse">
<wsdl:part name="parameters" element="v2_0:addProductResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getProducts">
<wsdl:part name="parameters" element="v2_0:getProducts">
</wsdl:part>
</wsdl:message>
<wsdl:message name="addProduct">
<wsdl:part name="parameters" element="v2_0:addProduct">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getProductsResponse">
<wsdl:part name="parameters" element="v2_0:getProductsResponse">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="ProductService_v2_0">
<wsdl:operation name="getProducts">
<wsdl:input name="getProducts" message="tns:getProducts">
</wsdl:input>
<wsdl:output name="getProductsResponse" message="tns:getProductsResponse">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="addProduct">
<wsdl:input name="addProduct" message="tns:addProduct">
</wsdl:input>
<wsdl:output name="addProductResponse" message="tns:addProductResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ProductServiceImplService_v2_0_SoapBinding" type="tns:ProductService_v2_0">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getProducts">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="getProducts">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getProductsResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="addProduct">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="addProduct">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="addProductResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ProductServiceImplService_v2_0">
<wsdl:port name="ProductServiceImplPort" binding="tns:ProductServiceImplService_v2_0_SoapBinding">
<soap:address location="http://localhost:8088/VersionService/services/ProductServiceImplPort"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
I am currently trying to use a web service I developed within an Integration Services package. When I try to configure the web service task I keep getting an error message. I configured the HTTP connection, and successfully downloaded the WSDL file which overrides my local copy. After that, on the input tab, I try to select the only service available "MyService" and then get the following error message:
Item has already been added. Key in dictionary: 'anyType' Key being added: 'anyType'
Anyone knows what this means?
Thanks in advance!
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions name="MyService" targetNamespace="http://www.MyDomain.de/webservices" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:tns="http://www.MyDomain.de/webservices" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex">
<wsdl:types>
<xsd:schema targetNamespace="http://www.MyDomain.de/webservices/Imports">
<xsd:import schemaLocation="http://localhost/MyDomainMyService/MyDomain.Billing.Infrastructure.Wcf.MyService.svc?xsd=xsd0" namespace="http://www.MyDomain.de/webservices" />
<xsd:import schemaLocation="http://localhost/MyDomainMyService/MyDomain.Billing.Infrastructure.Wcf.MyService.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
</xsd:schema>
</wsdl:types>
<wsdl:message name="MyService_BookNewTransaction_InputMessage">
<wsdl:part name="parameters" element="tns:BookNewTransaction" />
</wsdl:message>
<wsdl:message name="MyService_BookNewTransaction_OutputMessage">
<wsdl:part name="parameters" element="tns:BookNewTransactionResponse" />
</wsdl:message>
<wsdl:portType name="MyService">
<wsdl:operation name="BookNewTransaction">
<wsdl:input wsaw:Action="http://www.MyDomain.de/webservices/MyService/BookNewTransaction" message="tns:MyService_BookNewTransaction_InputMessage" />
<wsdl:output wsaw:Action="http://www.MyDomain.de/webservices/MyService/BookNewTransactionResponse" message="tns:MyService_BookNewTransaction_OutputMessage" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="BasicHttpBinding_MyService" type="tns:MyService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="BookNewTransaction">
<soap:operation soapAction="http://www.MyDomain.de/webservices/MyService/BookNewTransaction" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="MyService">
<wsdl:port name="BasicHttpBinding_MyService" binding="tns:BasicHttpBinding_MyService">
<soap:address location="http://localhost/MyDomainMyService/MyDomain.Billing.Infrastructure.Wcf.MyService.svc" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Ok, I found a link describing my problem.
Check this:
http://sjbdeveloper.blogspot.com/2007/03/calling-wcf-web-service-from-ssis-web.html
This should solve the problem:
http://sjbdeveloper.blogspot.com/2007/03/fixing-wcf-ssis-web-service-task.html