Skip to main content
Participant
April 28, 2008
Question

Consuming axis webservice works in ColdFusion 8, not in ColdFusion 7 - same exact code

  • April 28, 2008
  • 2 replies
  • 382 views
I have the same CFML code that I used to invoke a webservice in ColdFusion 8 that works fine.
I think it's a java version related issue (ColdFusion 7 uses JDK 1.4, ColdFusion 8 uses JDK 1.6).

When I deploy this in a ColdFusion 7 server, I get an illegal argument exception:

Could not perform web service invocation "insertUpdateDnbCompany".
Here is the fault returned when invoking the web service operation:

java.lang.IllegalArgumentException: argument type mismatch

Here's the stack trace:

java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at coldfusion.xml.rpc.ServiceProxy.invokeImpl(ServiceProxy.java:223)
at coldfusion.xml.rpc.ServiceProxy.invoke(ServiceProxy.java:153)
at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:1634)
at cfReplicate22ecfm975370412.runPage(E:\Inetpub\wwwroot\webapps_NEW\MDM\Replicate2.cfm:11)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152)
at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:349)
at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:225)
at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:51)
at coldfusion.filter.PathFilter.invoke(PathFilter.java:86)
at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:69)
at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:52)
at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
at coldfusion.filter.RequestThrottleFilter.invoke(RequestThrottleFilter.java:115)
at coldfusion.CfmServlet.service(CfmServlet.java:107)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:78)
at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)
at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:257)
at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:541)
at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:204)
at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:318)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:426)
at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:264)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

This topic has been closed for replies.

2 replies

HosermageAuthor
Participant
April 29, 2008
I changed my struct to be called 'req' instead of request and it worked! I guess it doesn't matter that it's named different from my .wsdl.
Participating Frequently
April 29, 2008
You should start by changing this line and all dependant lines from:
request = structNew();
to:
req = structNew(); or variables.request

Request is a build in scope and should not be used this way. Changing this very well cause this to function in both CF7 and CF8 since it after introspecting the request and struct types some significant restructuring of the underlying java classes. Inorder to help any more I would need to see the wsdl.

HTH

-Jason

HosermageAuthor
Participant
April 29, 2008
I'll try to prepend my request struct with the variables prefix and see if it resolves the issue. But this is why I called my struct request.