Copy link to clipboard
Copied
edI am unable to connect to an internally hosting webservice via ColdFusion MX or ColdFusion 8. ColdFusion MX will be the production environment. Dreamweaver will not pulling in the WSDL to generate the CFINVOKE framework and hand-coding the CFINVOKE with the parameters returns an unrecognized error. I have been able to complete a request using SoapUI via the desktop app, but can't through ColdFusion.
Any assistance would be greatly appreciated.
Here's the WSDL file:
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://generic-domain.com/MyAccount/Descriptor/MyAccountRPC" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="MyAccountRPC" targetNamespace="http://generic-domain.com/MyAccount/Descriptor/MyAccountRPC">
- <wsdl:types>
- <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://generic-domain.com/MyAccount/Descriptor/MyAccountRPC" targetNamespace="http://generic-domain.com/MyAccount/Descriptor/MyAccountRPC">
- <xsd:complexType name="AccountForEveryone">
- <xsd:sequence>
<xsd:element name="Request" nillable="true" type="tns:Request" />
</xsd:sequence>
</xsd:complexType>
- <xsd:complexType name="Request">
- <xsd:sequence>
<xsd:element name="EmailProgramReq" nillable="true" type="tns:EmailProgramReq" />
</xsd:sequence>
</xsd:complexType>
- <xsd:complexType name="EmailProgramReq">
- <xsd:sequence>
<xsd:element name="Email" nillable="true" type="xsd:string" />
<xsd:element name="CAN" nillable="true" type="xsd:string" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
- <xsd:complexType name="AccountForEveryoneResponse">
- <xsd:sequence>
<xsd:element name="Response" nillable="true" type="tns:Response" />
</xsd:sequence>
</xsd:complexType>
- <xsd:complexType name="Response">
- <xsd:sequence>
<xsd:element name="EmailProgramResp" nillable="true" type="tns:EmailProgramResp" />
</xsd:sequence>
</xsd:complexType>
+ <xsd:complexType name="EmailProgramResp">
- <xsd:sequence>
<xsd:element name="Email" nillable="true" type="xsd:string" />
<xsd:element name="AccExit" nillable="true" type="xsd:string" />
<xsd:element name="ReturnCode" nillable="true" type="xsd:string" />
<xsd:element name="ReturnMessage" nillable="true" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="AccountForEveryone" type="tns:AccountForEveryone" />
<xsd:element name="AccountForEveryoneResponse" type="tns:AccountForEveryoneResponse" />
</xsd:schema>
</wsdl:types>
- <wsdl:message name="MyAccountRPC_PortType_AccountForEveryone">
<wsdl:part name="Request" type="tns:Request" />
</wsdl:message>
- <wsdl:message name="MyAccountRPC_PortType_AccountForEveryoneResponse">
<wsdl:part name="Response" type="tns:Response" />
</wsdl:message>
- <wsdl:portType name="MyAccountRPC_PortType">
- <wsdl:operation name="AccountForEveryone">
<wsdl:input message="tns:MyAccountRPC_PortType_AccountForEveryone" />
<wsdl:output message="tns:MyAccountRPC_PortType_AccountForEveryoneResponse" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="MyAccount_Descriptor_MyAccountRPC_Binder" type="tns:MyAccountRPC_PortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="AccountForEveryone">
<soap:operation soapAction="MyAccount_Descriptor_MyAccountRPC_Binder_AccountForEveryone" style="rpc" />
- <wsdl:input>
<soap:body parts="Request" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://generic-domain.com/MyAccount/Descriptor/MyAccountRPC" />
</wsdl:input>
- <wsdl:output>
<soap:body parts="Response" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://generic-domain.com/MyAccount/Descriptor/MyAccountRPC" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="MyAccountRPC">
- <wsdl:port name="MyAccount_Descriptor_MyAccountRPC_Port" binding="tns:MyAccount_Descriptor_MyAccountRPC_Binder">
<soap:address location="https://generic-domain.com:5510/ws/MyAccount.Descriptor:MyAccountRPC" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Copy link to clipboard
Copied
What do you mean by an "an unrecognized error"?
What's the URL to the web service, and what's your calling code?
(can't help with DreamWeaver issues, but I presume your experiences there are a symptom of a wider issue).
--
Adam
Copy link to clipboard
Copied
Sorry, can't publish the actual url, it's internal.
Request:
<cfinvoke
webservice="http://generic-domain.com/myaccount/MyAccountRPC.wsdl?wsdl"
method="EmailProgramReq"
returnvariable="aString">
<cfinvokeargument name="Email" value="test@generic-domain.com"/>
<cfinvokeargument name="CAN" value="12121212121"/>
</cfinvoke>
Response :
Web service operation "EmailProgramReq" with parameters {Email={test@generic-domain.com},CAN={12121212121},} could not be found. | |
The error occurred in F:\Inetpub\wwwroot\myAccount\request.cfm: line 30 | |
28 : returnvariable="aString"> |
Copy link to clipboard
Copied
Is this correct:
http://generic-domain.com/myaccount/MyAccountRPC.wsdl?wsdl
?
ie, the file extension on the file is wsdl, and you also need a URL param of wsdl? Is that the exact URL you browse to to get the WSDL output?
Can your CF server do a <cfhttp> request to that URL, and get a 200-OK back, as well as the WSDL doc in the response?
--
Adam
Copy link to clipboard
Copied
They sent me the WSDL file, so it is hosted locally on my machine. I point to it and it is supposed to send the request to their server.
I can not HTTP to their SOAP url. It is HTTPS with a bit of security around it. I always receive a certificate error, however, using SoapUI does not give me that error.
Copy link to clipboard
Copied
They use a SOAP Adapter without discovery services, so the WSDL would not return when a request is made to hit it.
Copy link to clipboard
Copied
Fine, but your server still needs to be able to reach the box that actually has the web service on it! A WSDL file just has a description of the available web services (and, I guess, where they are). It's just an XML file. It doesn't do anything, it's just instructions of how to do something.
If it requires an HTTPS connection, you're going to need to install a client cert in JRun (just like you would if you were browsing to it via a web browser). I've never had to do this, but I've seen it come up enough time on these forums that if you search you'll be able to find the instructions to do so.
--
Adam