Cannot Generate stub objects for web service invocation...root location needs to be a directory

New Here ,
May 09, 2017 May 09, 2017

Copy link to clipboard

Copied

I'm only posting this because it is not coming up when i search on the text in the subject.

I'm using CF 11,0,11,301867  on Server 2012 with IIS 8 for both the web service itself and the web service being called.

I'm dumping the error structure in a custom error page and getting this:

1. The apps are currently housed on the same server, but were not originally.  both servers have this error

2. The following folders give the following users full control: SYSTEM (the user running CF) and Everyone and a spot check of subfolders and files indicates the setting has been inherited.  Essentially these folders are currently world writeable:

     C:\coldfusion11\cfusion\stubs

     C:\coldfusion11\cfusion\wwwroot

     C:\websites\myappfolder (the IIS root folder for the application)

3. the service is invoked from a CFC with one function that simply calls the web service and returns the result as follows:

<cfinvoke

  webservice="#https://#hostname#/services/Servicename.cfc?wsdl"

  method="methodname"

  returnvariable="theResult" refreshwsdl='true'>

  <cfinvokeargument name="theSession" value="#arguments.theSession#" omit="true" />

  </cfinvoke>

     a. The returntype of the returnvariable appears to be string.

     b. theSession is a string variable containing a series of letters, numbers and dashes, i can verify that it exists in the #Form# structure and is then passed to the cfc that invokes the service.

     c. It does not appear to make a difference whether refreshwsdl is true or false.

4. Another app on (previously) the same server is able to successfully consume the exact same service using apparently the exact same call.

5. The service is configured as follows:

<cffunction name="servicename" access="remote" returnType="string" output="no">

  <cfargument name='theSession' type='string'>

<cfquery  ... /cfquery>

     <cfset theResult = Queryname.columnname>

  <cfreturn theResult>

</cffunction>

6. Axis2.xml is configured to accept https on port 443 and http on port 80

We tried the following:

  • configure Axis2.xml to accept http and https connections and restart CF -  no change
  • Remove all stub folders, restart CF and call the application again.
  • Remove all cfc-skeletons with the servicename in them, restart CF and try again
  • set the folders referenced in 2. above to be world writeable and spot check sub folders and files
  • Run the same query manually against the database (result is returned and appears valid)

I am out of ideas. This code runs fine on local, dev and production configurations, but specifically on this server with the test configurations i'm getting this codeGenerationException error that points to a missing directory but isn't exactly clear WHICH directory is missing or what it should be.

For giggles i set it to use Axis1 and when it generated the error it did so with an obscured foldername (for instance, i have five folders in .../cfusion/stubs and none of them contain the host name, only one was modified today and when i skip over and go looking for the subfolders there definitely isn't a CodeGenerationError.class file there, but the folder is world writeable.  (here's the axis1 error's folder information)

C:\ColdFusion11\cfusion\stubs\ https:\servername\services\servicename.cfc?wsdl_1\coldfusion\xml\rpc\CFCInvocationException.java

Of note, everything in what APPEARS to be that folder is a class and not a java as well.

(Once we tested this, i set it back to Axis 2 as the server is being called by five other apps.)

Hopefully that is enough to start with, i can also say that the wsdl returns data whether i call it with cfhhtp or from a browser on the web server.  It's not till the code is invoked that this directory not being a directory comes up.

Let me know if i need to move this to another forum.  And thanks.

Message was edited by: Michelle Tracey

Views

830

Likes

Translate

Translate

Report

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
no replies

Have something to add?

Join the conversation