tracker issue : CF-3498968

select a category, or use search below
(searches all categories and all time range)
Title:

Some web services with data structure as argument values could not execute

| View in Tracker

Status/Resolution/Reason: Closed/Deferred/ThirdParty

Reporter/Name(from Bugbase): Saman Jayasekara / Saman Jayasekara (Saman)

Created: 02/12/2013

Components: Web Services

Versions: 10.0

Failure Type: Non Functioning

Found In Build/Fixed In Build: Final /

Priority/Frequency: Critical / All users will encounter

Locale/System: English / Win 2008 Server R2

Vote Count: 0

Problem Description:

Trying to connect to InDesign server SOAP API running in the same box and CF10 returns the error, "Web service operation RunScript with parameters... cannot be found". Remove CF 10, install CF 9 or earlier, it works. Other functions in the same web-service object, without stricture data arguments, works.

Able to recreate this in new servers.

Even thought I am yet to try with other web services, quick discussion revealed this been happening to other developers with other web serviceses (not InDesign API exclusive) 


Steps to Reproduce:

Run InDesign server (CS 5.5 in port 18383) and CFM in the same box. 

	<cfset RunScriptParameters=StructNew()> 
	<cfset RunScriptParameters.scriptText     = "script string,. no effect of this value for CF"> 
	<cfset RunScriptParameters.scriptLanguage = "javascript"> 
	<cfset RunScriptParameters.scriptArgs	 = ArrayNew(1)> 
	
	<cfobject 
	 name 		= "ind" 
	 webservice = "http://localhost:18383/service?wsdl" 
	 type 		= "webservice"> 

	<cfdump var="#ind#"> << WORKS

	<cfset ind.runScript(RunScriptParameters,"errornumber","errorfeedback","result")> 

Actual Result:

Expected Result:

Any Workarounds:

Run on CF9 or earlier or create SOAP request manually with CFHTTP in CF10

----------------------------- Additional Watson Details -----------------------------

Watson Bug ID:	3498968

External Customer Info:
External Company:  
External Customer Name: Saman
External Customer Email:  
External Test Config: EC2, Windows 2008 R2, CF10 Developer Edition, InDesign Server CS 5.5

Attachments:

Comments:

For now, you can use a workaround to using Axis 1 engine to do the client side stub. You can change the code like, <cfset RunScriptParameters=StructNew()> <cfset RunScriptParameters.scriptText = "script string,. no effect of this value for CF"> <cfset RunScriptParameters.scriptLanguage = "javascript"> <cfset RunScriptParameters.scriptArgs = ArrayNew(1)> <cfobject name = "ind" webservice = "http://localhost:18383/service?wsdl" type = "webservice" wsversion="1"> <cfdump var="#ind#"> << WORKS <cfset ind.runScript(RunScriptParameters,"errornumber","errorfeedback","result")> I have just added a wsversion="1" in the <cfobject> tag. Will fix this issue with Axis 2 framework also. Thanks
Comment by Paul N.
16345 | May 08, 2014 08:10:56 AM GMT
When Axis 2 generates stub for the Indesign Server WSDL, public int endSession(com.adobe.ns.indesign.soap.SessionID sessionID,com.adobe.ns.indesign.soap.SessionIDE sessionID) throws java.rmi.RemoteException; Both the arguments names are sessionID. I tried to generate the stub for the same service using vanilla axis2. It is generating code like, public int endSession(com.adobe.ns.indesign.soap.SessionID sessionID4,com.adobe.ns.indesign.soap.SessionIDE sessionID5) throws java.rmi.RemoteException; They are using a counter to change the names. Since in coldfusion we are using the names of the arguments, we overrided an axis 2 class to not generate this counter. That is why it is working with plain Axis 2. I have checked the WSDL and I cannot find SessionIDE type at all. Axis 2 is somehow generating it. I have raised a ticket to look into this issue. https://support.wso2.com/jira/browse/ADOBECOLDFUSIONDEV-3
Comment by Paul N.
16346 | November 20, 2014 09:04:51 AM GMT