Im creating a client API for a JAX-WS web service using wsimport tool(used the jaxws-maven-plugin:wsimport goal). The resulting API worked just fine. Now when security was introduced and wsimport run again on the updated WSDL file, I got an error:
[INFO] jaxws:wsimport args: [-s, C:\projects\EDMS2.0.0\docmgmt\docmgmt-client\src\main\java, -d, C:\projects\EDMS2.0.0\docmgmt\docmgmt-client\target\classes, -verbose, -p, com.abc.technology.retrieve.document.client.v1, C:\projects\EDMS\docmgmt\docmgmt-client\src\wsdl\RetrieveDocument\Technology-RetrieveDocument.wsdl]
parsing WSDL...
[ERROR] unknown required extensibility element "wsp:PolicyReference" (in namespace "http://www.w3.org/ns/ws-policy")
line 65 of file:/C:/projects/EDMS/docmgmt/docmgmt-client/src/wsdl/RetrieveDocument/Technology-RetrieveDocument.wsdl
Failed to parse the WSDL.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------`
WSDL file:
<?xml version='1.0' encoding='UTF-8'?>
<wsdl11:definitions xmlns:wsdl11="http://schemas.xmlsoap.org/wsdl/" xmlns:soap11="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:whttp="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http:/schemas.xmlsoap.org/wsdl/mime/"
xmlns:tns="http://services.abc.com/Technology/RetrieveDocument/service/v1"
xmlns:wsp="http://www.w3.org/ns/ws-policy" targetNamespace="http://services.abc.com/Technology/RetrieveDocument/service/v1"
xmlns:exceptions="http://services.abc.com/exceptions" xmlns:abc="http://services.abc.com/framework/abcHeader/v2"
xmlns:contract="http://services.abc.com/Technology/RetrieveDocument/contract/v1"> <!--BEGIN ABSTRACT DESCRIPTION-->
<wsdl11:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:contract="http://services.abc.com/Technology/RetrieveDocument/contract/v1"
targetNamespace="http://services.abc.com/Technology/RetrieveDocument/contract/v1">
<xsd:include schemaLocation="RetrieveDocument_v1.xsd"/>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:exceptions="http://services.abc.com/exceptions"
targetNamespace="http://services.abc.com/exceptions">
<xsd:include schemaLocation="CnaExceptions.xsd"/>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:abc="http://services.abc.com/framework/abcHeader/v2"
targetNamespace="http://services.abc.com/framework/abcHeader/v2">
<xsd:include schemaLocation="CnaHeader_v2.xsd"/>
</xsd:schema>
</wsdl11:types>
<wsdl11:message name="retrieveDocument-inputHeader">
<wsdl11:part name="To" element="abc:To"/>
<wsdl11:part name="HeaderMetadata" element="abc:HeaderMetadata"/>
<wsdl11:part name="ConsumerInfo" element="abc:ConsumerInfo"/>
</wsdl11:message>
<wsdl11:message name="retrieveDocument">
<wsdl11:part name="body" element="contract:RetrieveDocument"/>
</wsdl11:message>
<wsdl11:message name="retrieveDocument-outputHeader">
<wsdl11:part name="To" element="abc:To"/>
<wsdl11:part name="HeaderMetadata" element="abc:HeaderMetadata"/>
<wsdl11:part name="ConsumerInfo" element="abc:ConsumerInfo"/>
</wsdl11:message>
<wsdl11:message name="retrieveDocumentResponse">
<wsdl11:part name="body" element="contract:RetrieveDocumentResponse"/>
</wsdl11:message>
<wsdl11:message name="abcInvalidMessageException">
<wsdl11:part name="body" element="exceptions:CfInvalidMessageException"/>
</wsdl11:message>
<wsdl11:message name="abcServiceException">
<wsdl11:part name="body" element="exceptions:CfServiceException"/>
</wsdl11:message>
<wsdl11:message name="abcProducerApplicationException">
<wsdl11:part name="body" element="exceptions:CfProducerApplicationException"/>
</wsdl11:message>
<wsdl11:portType name="RetrieveDocument">
<wsdl11:operation name="retrieveDocument">
<wsdl11:input message="tns:retrieveDocument"/>
<wsdl11:output message="tns:retrieveDocumentResponse"/>
<wsdl11:fault message="tns:abcInvalidMessageException" name="abcInvalidMessageException"/>
<wsdl11:fault message="tns:abcServiceException" name="abcServiceException"/>
<wsdl11:fault message="tns:abcProducerApplicationException" name="abcProducerApplicationException"/>
</wsdl11:operation>
</wsdl11:portType>
<!--END ABSTRACT DESCRIPTION-->
<!--BEGIN BINDING DESCRIPTION-->
<wsdl11:binding name="RetrieveDocumentSOAPBinding" type="tns:RetrieveDocument">
<soap11:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl11:operation name="retrieveDocument">
<soap11:operation soapAction="http://services.abc.com/Technology/RetrieveDocument/service/v1/soap11/RetrieveDocument./retrieveDocument"
wsdl11:required="true" style="document"/>
<wsdl11:input>
<wsp:PolicyReference URI="abc-username-secure" wsdl11:required="true"/>
<soap11:header use="literal" message="tns:retrieveDocument-inputHeader"
part="To"/>
<soap11:header use="literal" message="tns:retrieveDocument-inputHeader"
part="HeaderMetadata"/>
<soap11:header use="literal" message="tns:retrieveDocument-inputHeader"
part="ConsumerInfo"/>
<soap11:body use="literal"/>
</wsdl11:input>
<wsdl11:output>
<soap11:header use="literal" message="tns:retrieveDocument-outputHeader"
part="To"/>
<soap11:header use="literal" message="tns:retrieveDocument-outputHeader"
part="HeaderMetadata"/>
<soap11:header use="literal" message="tns:retrieveDocument-outputHeader"
part="ConsumerInfo"/>
<soap11:body use="literal"/>
</wsdl11:output>
<wsdl11:fault name="abcInvalidMessageException">
<soap11:fault name="abcInvalidMessageException" use="literal"/>
</wsdl11:fault>
<wsdl11:fault name="abcServiceException">
<soap11:fault name="abcServiceException" use="literal"/>
</wsdl11:fault>
<wsdl11:fault name="abcProducerApplicationException">
<soap11:fault name="abcProducerApplicationException" use="literal"/>
</wsdl11:fault>
</wsdl11:operation>
</wsdl11:binding>
<!--END BINDING DESCRIPTION-->
<!--BEGIN SERVICE DESCRIPTION-->
<wsdl11:service name="RetrieveDocument">
<wsdl11:port name="RetrieveDocument" binding="tns:RetrieveDocumentSOAPBinding">
<soap11:address location="dummy.url"/>
</wsdl11:port>
</wsdl11:service>
<!--END SERVICE DESCRIPTION-->
<wsp:Policy wsu:Id="abc-username-secure" xmlns:wsu=
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
<wsp:ExactlyOne>
<wsp:All>
<!-- Empty <TransportBinding/> element required due to bug in CXF 2.2.6 -->
<sp:TransportBinding/>
<sp:SupportingTokens>
<wsp:Policy>
<sp:UsernameToken sp:IncludeToken=".../IncludeToken/AlwaysToRecipient"/>
</wsp:Policy>
</sp:SupportingTokens>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
</wsdl11:definitions>
I did some research and tried switching on the extension switch in wsimport. After this the API was generated successfully. But after this authentication part was ignored by wsimport I think.
Please explain what the right procedure is to properly generate the client API when Web Service security is needed?
Related
After importing a wsdl, no TSOAPHeader classes have been generated, hence no elements are in the request. The operation element in the wsdl:
<wsdl:operation name="searchTdsProviderIndividual">
<wsoap12:operation soapaction="" style="document">
<wsdl:input>
<wsoap12:header message="tns:searchTdsProviderIndividualInMsg" part="productHeader" use="literal">
<wsoap12:header message="tns:searchTdsProviderIndividualInMsg" part="signatureHeader" use="literal">
<wsoap12:header message="tns:searchTdsProviderIndividualInMsg" part="timestampHeader" use="literal">
<wsoap12:header message="tns:searchTdsProviderIndividualInMsg" part="userHeader" use="literal">
<wsoap12:body parts="request" use="literal">
</wsoap12:body></wsoap12:header></wsoap12:header></wsoap12:header></wsoap12:header></wsdl:input>
<wsdl:output>
<wsoap12:header message="tns:searchTdsProviderIndividualOutMsg" part="productHeader" use="literal">
<wsoap12:header message="tns:searchTdsProviderIndividualOutMsg" part="signatureHeader" use="literal">
<wsoap12:body parts="response" use="literal">
</wsoap12:body></wsoap12:header></wsoap12:header></wsdl:output>
<wsdl:fault name="standardError">
<wsoap12:fault name="standardError" use="literal">
</wsoap12:fault></wsdl:fault>
</wsoap12:operation></wsdl:operation>
The soap request that is produced:
<!--?xml version="1.0"?-->
<soap-env:envelope xmlns:soap-env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap-env:body>
<searchtdsproviderindividual xmlns="http://ns.electronichealth.net.au/hi/svc/ProviderSearchTdsProviderIndividual/5.1.0">
<familyname xmlns="http://ns.electronichealth.net.au/hi/xsd/providermessages/SearchTdsProviderIndividual/5.1.0">Smith</familyname>
<dateofbirth xmlns="" xsi:nil="true">
</dateofbirth></searchtdsproviderindividual>
<product xmlns="http://ns.electronichealth.net.au/hi/xsd/common/CommonCoreElements/3.0">
<vendor xsi:nil="true">
<productname>xxx</productname>
<productversion>1.8</productversion>
<platform>
</platform></vendor></product>
<timestamp xmlns="http://ns.electronichealth.net.au/hi/xsd/common/CommonCoreElements/3.0">
<created xsi:nil="true">
</created></timestamp>
<signature xmlns="http://ns.electronichealth.net.au/hi/xsd/common/CommonCoreElements/3.0">
<signature xmlns="" xsi:nil="true">
</signature>
<user xmlns="http://ns.electronichealth.net.au/hi/xsd/common/CommonCoreElements/3.0">
<qualifier xmlns="http://ns.electronichealth.net.au/hi/xsd/common/QualifiedIdentifier/3.0">http://ns.electronichealth.net.au/id/hi/vendorid/1.0</qualifier>
<id xmlns="http://ns.electronichealth.net.au/hi/xsd/common/QualifiedIdentifier/3.0">XXX00001</id>
</user>
</signature></soap-env:body>
</soap-env:envelope>
I was using the following configuration to hit a SOAP based service in mule 3.2, which works fine
<https:connector name="https" doc:name="HTTP\HTTPS"></https:connector>
<https:outbound-endpoint exchange-pattern="request-response" method="POST"
address="https://localhost:8080/CXF3Service/test" responseTimeout="15000" contentType="application/xml"
doc:name="HTTP Submit Request SOAP" connector-ref="https"> <message-properties-transformer
scope="outbound"> <add-message-property key="SOAPAction" value="https://myservice/myEndpoint"
/> </message-properties-transformer> </https:outbound-endpoint>
SOAP Binding in wsdl will look like,
<wsdl:operation name="sayHello">
<soap:operation soapAction="https://myservice/myEndpoint" style="document"/>
<wsdl:input name="sayHello">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="sayHelloResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
On migrating to Mule 3.6, i replaced the code as follows. this was done to replace the deprecated https:outbound-endpoint with http:request
<http:request-config name="http" protocol="HTTPS"
host="localhost" port="8080"
doc:name="HTTP Request Configuration"/>
<http:request config-ref="http" path="CXF3Service/test" method="POST"
doc:name="HTTP" responseTimeout="15000" >
<http:request-builder>
<http:header headerName="SOAPAction" value="https://myservice/myEndpoint" ></http:header>
</http:request-builder>
<http:success-status-code-validator
values="0..599" />
</http:request>
But on hitting the service with new code, i am getting a SOAP Fault as response.
<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Server did not recognize the value of HTTP Header SOAPAction: https://myservice/myEndpoint, "".</faultstring>
<detail/>
</soap:Fault>
</soap:Body>
</soap:Envelope>
What could be the possible reason for this?
FYI. I am using a cxf:proxy-client with payload as envelope, which remains unchanged for both.
<cxf:proxy-client payload="envelope" doc:name="Proxy client">
<cxf:inInterceptors>
<spring:bean class="org.apache.cxf.interceptor.LoggingInInterceptor">
<spring:property name="prettyLogging" value="true" />
</spring:bean>
</cxf:inInterceptors>
<cxf:outInterceptors>
<spring:bean class="org.apache.cxf.interceptor.LoggingOutInterceptor">
<spring:property name="prettyLogging" value="true" />
</spring:bean>
</cxf:outInterceptors>
<cxf:outFaultInterceptors>
<spring:bean class="org.apache.cxf.interceptor.LoggingOutInterceptor">
<spring:property name="prettyLogging" value="true" />
</spring:bean>
</cxf:outFaultInterceptors>
</cxf:proxy-client>
Small tweak did the magic!!
I set the SOAPAction before the http:request instead of setting it inside.
<cxf:proxy-client payload="envelope" doc:name="Proxy client">
<cxf:inInterceptors>
<spring:bean class="org.apache.cxf.interceptor.LoggingInInterceptor">
<spring:property name="prettyLogging" value="true" />
</spring:bean>
</cxf:inInterceptors>
<cxf:outInterceptors>
<spring:bean class="org.apache.cxf.interceptor.LoggingOutInterceptor">
<spring:property name="prettyLogging" value="true" />
</spring:bean>
</cxf:outInterceptors>
<cxf:outFaultInterceptors>
<spring:bean class="org.apache.cxf.interceptor.LoggingOutInterceptor">
<spring:property name="prettyLogging" value="true" />
</spring:bean>
</cxf:outFaultInterceptors>
</cxf:proxy-client>
<message-properties-transformer>
<add-message-property key="SOAPAction" value="https://myservice/myEndpoint"/>
</message-properties-transformer>
<http:request config-ref="http" path="CXF3Service/test" method="POST"
doc:name="HTTP" responseTimeout="15000" >
<http:success-status-code-validator
values="0..599" />
</http:request>
My webservice defines a WS Addressing policy in its WSDL with
<wsp:Policy wss:Id="WSAddressing_policy"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata">
<wsam:Addressing>
<wsp:policy/>
</wsam:Addressing>
</wsp:Policy>
... and
<wsdl:binding name="OutboundBinding" type="tns:OutboundPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsp:PolicyReference URI="#WSAddressing_policy"/>
<!-- Verify Availability -->
<wsdl:operation name="VerifyAvailability">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="VerifyAvailabilityRequest">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="VerifyAvailabilityResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
I use CXFs automatic interceptors for policies:
<cxf:bus>
<cxf:features>
<p:policies ignoreUnknownAssertions="true"/>
<cxf:logging/>
</cxf:features>
</cxf:bus>
Now I'm unable to create a valid request to this webservice with SOAP UI - I always get the following response, regardless which WS-A settings I try:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode xmlns:ns1="http://www.w3.org/2005/08/addressing">ns1:MessageAddressingHeaderRequired</faultcode>
<faultstring>A required header representing a Message Addressing Property is not present</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
What am I doing wrong?
Update
I'm also unable to create a valid request using a CXF Client itself. I managed to get it working if I change the WSDL from
<wsp:Policy wss:Id="WSAddressing_policy">
<wsam:Addressing>
<wsp:policy/>
</wsam:Addressing>
</wsp:Policy>
to
<wsp:Policy wss:Id="WSAddressing_policy">
<wsaw:UsingAddressing xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" wsp:Optional="false" />
</wsp:Policy>
It seems the addressing metadata namespace is currently the problem for CXF.
I filed a bugreport.
Using
xmlns:wsam="http://www.w3.org/2007/02/addressing/metadata"
instead of
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
solves the problem.
Update: This issue has been resolved. I was trying to authenticate various admin accounts which apparently are in a separate database than the user accounts this service talks to. I used a generic user account that I created in CISCO and the web service calls worked great!
I would like to thank #Yahia for the recommendation on running Fiddler also!
I've been reading over the CICCO UCP Web Service documentation for days now. I'm able to talk to the one web service on the box, with proper credentials and everything works fine; however, with the UCP Service, I get an error... SoapUI seems to understand the WSDL file, and I'm able to send a request to the endpoint but I get an authentication error, below.
I use the same username and password to login to the ACS Portal so the account is not expired. I'm pretty much lost on this one and at the mercy of CICSO tech support. Any and all ideas are welcome!
SOAP Response:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:authenticateUserResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://cisco.com/nm/acs/mgmt/ucp/service/">
<authenticateUserReturn href="#id0"/>
</ns1:authenticateUserResponse>
<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:ResponseType" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://cisco.com/nm/acs/mgmt/ucp/service/">
<errors soapenc:arrayType="xsd:string[1]" xsi:type="soapenc:Array">
<errors xsi:type="xsd:string">Credentials are incorrect.</errors>
</errors>
<status href="#id1"/>
</multiRef>
<multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:StatusCodeType" xmlns:ns3="http://cisco.com/nm/acs/mgmt/ucp/service/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">failure</multiRef>
</soapenv:Body>
</soapenv:Envelope>
Soap Envelope:
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://cisco.com/nm/acs/mgmt/ucp/service/">
<soapenv:Header/>
<soapenv:Body>
<ser:authenticateUser soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<userName xsi:type="xsd:string">myusername</userName>
<password xsi:type="xsd:string">mypassword</password>
</ser:authenticateUser>
</soapenv:Body>
</soapenv:Envelope>
And the WSDL:
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions targetNamespace="http://cisco.com/nm/acs/mgmt/ucp/service/"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="http://www.cisco.com/wsdl.service"
xmlns:intf="http://cisco.com/nm/acs/mgmt/ucp/service/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:documentation>Copyright (c) 2007, 2009 Cisco Systems, Inc.
WSDL Service Interface for ACS5.1 User Change Password interface
(UCP) This WSDL document defines the publication API calls for
interacting with the ACS UCP service.</wsdl:documentation>
<wsdl:types>
<schema targetNamespace="http://cisco.com/nm/acs/mgmt/ucp/service/"
xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<complexType name="ArrayOf_xsd_string">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType"
wsdl:arrayType="xsd:string[]" />
</restriction>
</complexContent>
</complexType>
<simpleType name="StatusCodeType">
<restriction base="string">
<enumeration value="success" />
<enumeration value="failure" />
</restriction>
</simpleType>
<complexType name="ResponseType">
<sequence>
<element name="errors" nillable="true"
type="intf:ArrayOf_xsd_string" />
<element name="status" nillable="false"
type="intf:StatusCodeType" />
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="changeUserPassRequest">
<wsdl:part name="userName" type="xsd:string" />
<wsdl:part name="oldPassword" type="xsd:string" />
<wsdl:part name="newPassword" type="xsd:string" />
</wsdl:message>
<wsdl:message name="authenticateUserRequest">
<wsdl:part name="userName" type="xsd:string" />
<wsdl:part name="password" type="xsd:string" />
</wsdl:message>
<wsdl:message name="changeUserPassResponse">
<wsdl:part name="changeUserPassReturn"
type="intf:ResponseType" />
</wsdl:message>
<wsdl:message name="authenticateUserResponse">
<wsdl:part name="authenticateUserReturn"
type="intf:ResponseType" />
</wsdl:message>
<wsdl:portType name="UCP">
<wsdl:operation name="authenticateUser"
parameterOrder="userName password">
<wsdl:input message="intf:authenticateUserRequest"
name="authenticateUserRequest" />
<wsdl:output message="intf:authenticateUserResponse"
name="authenticateUserResponse" />
</wsdl:operation>
<wsdl:operation name="changeUserPass"
parameterOrder="userName oldPassword newPassword">
<wsdl:input message="intf:changeUserPassRequest"
name="changeUserPassRequest" />
<wsdl:output message="intf:changeUserPassResponse"
name="changeUserPassResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="UCP" type="intf:UCP">
<wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="authenticateUser">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="authenticateUserRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://cisco.com/nm/acs/mgmt/ucp/service/"
use="encoded" />
</wsdl:input>
<wsdl:output name="authenticateUserResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://cisco.com/nm/acs/mgmt/ucp/service/"
use="encoded" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="changeUserPass">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="changeUserPassRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://cisco.com/nm/acs/mgmt/ucp/service/"
use="encoded" />
</wsdl:input>
<wsdl:output name="changeUserPassResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://cisco.com/nm/acs/mgmt/ucp/service/"
use="encoded" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="UCPService">
<wsdl:port binding="intf:UCP" name="UCP">
<wsdlsoap:address location="https://localhost/PI/services/UCP/" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Update: This issue has been resolved. I was trying to authenticate various admin accounts which apparently are in a separate database than the user accounts this service talks to. I used a generic user account that I created in CISCO and the web service calls worked great!
I would like to thank #Yahia for the recommendation on running Fiddler also!
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