Highlighted

Why is my Object() showing as Object()()?

New Here ,
Mar 06, 2017

Copy link to clipboard

Copied

I need to move a web service from an old ColdFusion 8 server (running from SQL 2005) to a new ColdFusion 2016 (running from SQL 2016).

The web service is just a basic .CFC file which is coded like this:

<cfcomponent output="false">
   <cffunction
name="getinfo" returntype="query" output="no" access="remote">
      <cfargument name="variable1" type="string">
      <cfargument name="variable2" type="string">
      <cfargument name="variable3" type="string"> 
     
      <cfquery
name="qryName" datasource="database_name"> select columns from table
      </cfquery> 

      <cfreturn qryName>
   </cffunction>
</cfcomponent>

My vendor using the web service is receiving this error:

Unable to generate a temporary class (result=1). error CS0266: Cannot implicitly convert type 'object' to 'object[]'

The issue appears to be that ColdFusion 8 service was showing:

data() As Object()

But the new ColdFusion 2016 is showing:

data() As Object()()

I don't have a clue as to where ColdFusion is even setting the Object as I thought everything was contained within the .CFC file. I'm not very advanced with ColdFusion, so any help is appreciated.

Any idea why the extra () is showing up on the Object()? How would I go about investigating this?

Note: The ColdFusion 8 server had a fully in-house coded website on it with an Application.cfm file, etc. which I did not copy to the ColdFusion 2016 server. If I need to look at the old setup, which files should I be looking for?

When I investigated further, I found the issue was simply I needed to change the web service version from 2 to 1.  Then the WSDL was formatted the same as the old server.

Thank you for taking time to respond.

Views

181

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

Why is my Object() showing as Object()()?

New Here ,
Mar 06, 2017

Copy link to clipboard

Copied

I need to move a web service from an old ColdFusion 8 server (running from SQL 2005) to a new ColdFusion 2016 (running from SQL 2016).

The web service is just a basic .CFC file which is coded like this:

<cfcomponent output="false">
   <cffunction
name="getinfo" returntype="query" output="no" access="remote">
      <cfargument name="variable1" type="string">
      <cfargument name="variable2" type="string">
      <cfargument name="variable3" type="string"> 
     
      <cfquery
name="qryName" datasource="database_name"> select columns from table
      </cfquery> 

      <cfreturn qryName>
   </cffunction>
</cfcomponent>

My vendor using the web service is receiving this error:

Unable to generate a temporary class (result=1). error CS0266: Cannot implicitly convert type 'object' to 'object[]'

The issue appears to be that ColdFusion 8 service was showing:

data() As Object()

But the new ColdFusion 2016 is showing:

data() As Object()()

I don't have a clue as to where ColdFusion is even setting the Object as I thought everything was contained within the .CFC file. I'm not very advanced with ColdFusion, so any help is appreciated.

Any idea why the extra () is showing up on the Object()? How would I go about investigating this?

Note: The ColdFusion 8 server had a fully in-house coded website on it with an Application.cfm file, etc. which I did not copy to the ColdFusion 2016 server. If I need to look at the old setup, which files should I be looking for?

When I investigated further, I found the issue was simply I needed to change the web service version from 2 to 1.  Then the WSDL was formatted the same as the old server.

Thank you for taking time to respond.

Views

182

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
Mar 06, 2017 0
Adobe Community Professional ,
Mar 07, 2017

Copy link to clipboard

Copied

1) Is it possible for you to open the WSDL in the browser? That is, http://URL_to_webservice_CFC?wsdl

If you get the WSDL, as expected, then you will see that it defines the complexType, QueryBean. That is what ColdFusion's web service converts the query to. You could then experiment by changing returntype="query" to returntype="any".

2) Your CFC code example doesn't seem to be a faithful reproduction of the actual code. It contains 3 arguments which are never used.

In any case, what happens when you run the query in a CFM page? That is, what do you get when you run this:

     <cfquery name="qryName" datasource="database_name">

          select columns from table
      </cfquery> 
      <cfdump var="#qryName#">

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
Reply
Loading...
Mar 07, 2017 0
New Here ,
Mar 07, 2017

Copy link to clipboard

Copied

When I investigated further, I found the issue was simply I needed to change the web service version from 2 to 1.  Then the WSDL was formatted the same as the old server.

Thank you for taking time to respond.

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
Reply
Loading...
Mar 07, 2017 0
BKBK LATEST
Adobe Community Professional ,
Mar 07, 2017

Copy link to clipboard

Copied

Thanks for sharing that. Please mark your answer as correct. It will certainly help someone else in future, as this is the kind of issue that others will face.

Please report the issue as a bug. We expected the error message to say something about the webservice version.

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
Reply
Loading...
Mar 07, 2017 0