so i have never created a web service and find my self wanting to learn how. So
I found this page with examples
http://www.quackit.com/coldfusion/tutorial/coldfusion_web_services.cfm
i followed the example and built my own script just changing out my database
info so it would use my data.
here is my data
<cfcomponent>
<cffunction name="listBooks"
access="remote"
returntype="string"
output="no">
<cfargument name="category"
type="string"
required="yes">
<cfset Var BookList = "">
<cfset Var getBooks = "">
<cfquery name="getBooks" datasource="datasource">
SELECT FileToolID,FileTitle, UrlLink, FileDescription, File3
FROM FileTool
AND FileTool.StatusID = 'Approved'
AND FileTool.FileCONFIGID = 24
</cfquery>
<cfsavecontent variable="BookList">
<books>
<cfoutput query="getBooks">
<book id="#FileToolID#">
<booktitle>#XMLFormat(FileTitle)#</booktitle>
<teaser>#XMLFormat(UrlLink)#</teaser>
<price>#XMLFormat(FileDescription)#</price>
</book>
</cfoutput>
</books>
</cfsavecontent>
<cfreturn BookList>
</cffunction>
</cfcomponent>
i tried to then run this script
<cfinvoke
method="listBooks"
returnvariable="rawXMLBookList"
webservice="http://yourdomain.com/web_services/book.cfc?wsdl">
<cfinvokeargument name="category" value="123">
</cfinvoke>
<cfset computerBooks = XmlParse(rawXMLBookList)>
<cfdump var="#computerBooks#">
and i get nothing but an error. the part i do not get is my first file is
called test.cfm do i need to cal lit test.cfc? or does it create a file called
test.cfm
this part confuses me.
thanks much
mikey999 - 25 Mar 2008 22:18 GMT
ps this part webservice="http://yourdomain.com/web_services/book.cfc?wsdl"> i did put in the link to my file test.cfc
Ian Skinner - 25 Mar 2008 22:35 GMT
> so i have never created a web service and find my self wanting to learn how. So
> I found this page with examples
[quoted text clipped - 62 lines]
>
> thanks much
The <cfcomponent...>...</cfcomponent> code should be in a file with a
.cfc extension, this is not required, but it is the default expectation.
The <cfinvoke...> tag should be in an .cfm file. It could also be in a
higer level cfc, but let's not get ahead of ourselves here. The
"webservice" parameter of the <cfinvoke...> tag should reference the cfc
file created above.
Before running your cfc as a web service run it as a component. Just
add a component version of <cfinvoke...> before your web service
version. This makes sure that errors in the cfc itself is not stopping
you dead in your tracks. A web service can not always report the same
level of detail about an error as a component called locally can.
mikey999 - 26 Mar 2008 14:27 GMT
well i am getting this error maybe this will help some
===================================================================
Could not perform web service invocation "listBooks".
Here is the fault returned when invoking the web service operation:
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: coldfusion.xml.rpc.CFCInvocationException:
[coldfusion.tagext.sql.QueryTag$DatabaseQueryException : Error Executing
Database Query.][java.sql.SQLException : [Macromedia][SQLServer JDBC
Driver][SQLServer]Incorrect syntax near the keyword 'AND'.]
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:coldfusion.xml.rpc.CFCInvocationExcepti
on: [coldfusion.tagext.sql.QueryTag$DatabaseQueryException : Error Executing
Database Query.][java.sql.SQLException : [Macromedia][SQLServer JDBC
Driver][SQLServer]Incorrect syntax near the keyword 'AND'.]
at
coldfusion.xml.rpc.CFComponentSkeleton.__createCFCInvocationException(CFComponen
tSkeleton.java:714)
at
coldfusion.xml.rpc.CFComponentSkeleton.__invoke(CFComponentSkeleton.java:660)
at login.test.listBooks(D:\login\test.cfc)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAcce...
The error occurred in D:\login\test2.cfm: line 6
4 : webservice="http://www.resourcesaver.com/login/test.cfc?wsdl">
5 :
6 : <cfinvokeargument name="category" value="123">
7 : </cfinvoke>
8 :
Azadi - 26 Mar 2008 15:07 GMT
SELECT FileToolID,FileTitle, UrlLink, FileDescription, File3
FROM FileTool
AND FileTool.StatusID = 'Approved'
AND FileTool.FileCONFIGID = 24
that is a very wrong sql statement, which is what your webservice is
trying to tell you with the error...
see what and WHERE you are missing in your sql?
Azadi Saryev
Sabai-dee.com
http://www.sabai-dee.com/
mikey999 - 26 Mar 2008 22:10 GMT
i fixed that error in my query you are right i missed out a where but still
getthis this error
i also noticed in side the cfm admin there is a place for web service but this
example does not talk about this at all. Do i need to do anything in that cfm
admin on this for this to work?
===============================================
Could not perform web service invocation "listBooks".
Here is the fault returned when invoking the web service operation:
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: coldfusion.xml.rpc.CFCInvocationException:
[coldfusion.tagext.sql.QueryTag$DatabaseQueryException : Error Executing
Database Query.][java.sql.SQLException : [Macromedia][SQLServer JDBC
Driver][SQLServer]Invalid column name 'UrlLink'.]
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:coldfusion.xml.rpc.CFCInvocationExcepti
on: [coldfusion.tagext.sql.QueryTag$DatabaseQueryException : Error Executing
Database Query.][java.sql.SQLException : [Macromedia][SQLServer JDBC
Driver][SQLServer]Invalid column name 'UrlLink'.]
at
coldfusion.xml.rpc.CFComponentSkeleton.__createCFCInvocationException(CFComponen
tSkeleton.java:714)
at
coldfusion.xml.rpc.CFComponentSkeleton.__invoke(CFComponentSkeleton.java:660)
at login.test.listBooks(D:\login\test.cfc)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Nati...
The error occurred in D:\web\getfsites\getf\test2.cfm: line 6
4 : webservice="http://www.resourcesaver.com/login/test.cfc?wsdl">
5 :
6 : <cfinvokeargument name="category" value="123">
7 : </cfinvoke>
8 :
--------------------------------------------------------------------------------
Resources:
Check the ColdFusion documentation to verify that you are using the correct
syntax.
Search the Knowledge Base to find a solution to your problem.
Browser Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
Remote Address 64.243.182.132
Referrer
Date/Time 26-Mar-08 03:41 PM
Azadi - 27 Mar 2008 02:55 GMT
just READ the error you get:
faultString: coldfusion.xml.rpc.CFCInvocationException:
[coldfusion.tagext.sql.QueryTag$DatabaseQueryException : Error Executing
Database Query.][java.sql.SQLException : [Macromedia][SQLServer JDBC
Driver][SQLServer]Invalid column name 'UrlLink'.]
*Invalid column name 'UrlLink'*
you apparently still have your query wrong...
Azadi Saryev
Sabai-dee.com
http://www.sabai-dee.com/