Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Posting to Webmethods webservice hosted internally

New Here ,
Feb 02, 2010 Feb 02, 2010

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>

TOPICS
Advanced techniques
1.1K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Feb 02, 2010 Feb 02, 2010

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

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 02, 2010 Feb 02, 2010

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">
29 :           <cfinvokeargument name="Email" value="scott.grotyohann@pb.com"/>     
30 :           <cfinvokeargument name="CAN" value="12121212121"/>          
31 :      </cfinvoke>
32 :      
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Feb 02, 2010 Feb 02, 2010

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

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 02, 2010 Feb 02, 2010

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.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 02, 2010 Feb 02, 2010

They use a SOAP Adapter without discovery services, so the WSDL would not return when a request is made to hit it.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Feb 02, 2010 Feb 02, 2010
LATEST

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

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources