struct | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Detail | Either there are no methods with the specified method name and argument types or the setStatus method is overloaded with argument types that ColdFusion cannot decipher reliably. ColdFusion found 0 methods that match the provided arguments. If this is a Java object and you verified that the method exists, use the javacast function to reduce ambiguity. | ||||||||||||||||||
Message | The setStatus method was not found. | ||||||||||||||||||
MethodName | setStatus | ||||||||||||||||||
StackTrace | coldfusion.runtime.java.MethodSelectionException: The setStatus method was not found. at coldfusion.runtime.java.ObjectHandler.findMethodUsingCFMLRules(ObjectHandler.java:383) at coldfusion.runtime.StructBean.invoke(StructBean.java:524) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2393) at cfthing2ecfm717212895.runPage(/var/www/apps/onecpd/wwwroot/deleteme_jj/thing.cfm:46) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:231) at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:416) at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65) at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:360) at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) at coldfusion.filter.PathFilter.invoke(PathFilter.java:94) at coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:27) at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70) at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38) at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46) at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62) at coldfusion.CfmServlet.service(CfmServlet.java:200) at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at jrun.servlet.FilterChain.doFilter(FilterChain.java:86) at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) at jrun.servlet.FilterChain.doFilter(FilterChain.java:94) at jrun.servlet.FilterChain.service(FilterChain.java:101) at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106) at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42) at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286) at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543) at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203) at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428) at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66) | ||||||||||||||||||
TagContext |
| ||||||||||||||||||
Type | Object | ||||||||||||||||||
number | 0 |
--
You received this message because you are subscribed to the Google Groups "javaloader-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to javaloader-de...@googlegroups.com.
To post to this group, send email to javaloa...@googlegroups.com.
Visit this group at http://groups.google.com/group/javaloader-dev?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups "javaloader-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to javaloader-de...@googlegroups.com.
To post to this group, send email to javaloa...@googlegroups.com.
Visit this group at http://groups.google.com/group/javaloader-dev?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
object of com.geolearning.geonext.webservices.User | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Class Name | com.geolearning.geonext.webservices.User | ||||||||||||
Methods | |||||||||||||
Parent Class |
|
object of com.geolearning.geonext.webservices.Status | |
---|---|
Class Name | com.geolearning.geonext.webservices.Status |
Methods | |
Fields |
Is the method a public method?
Do you have some javadoc for this object? Or the original source?
Yes. I don't think it would show up in the cfdump without it. Also, the same code works if it is added to the cf classpath (in jvm.config) and used with creatObject("java", ..., instead of JavaLoader.
Could be a CF bug... I've seen it have issues resolving parent methods.
Is there a setStatus() method on the User? (not the parent) that it could be getting confused with?
object of com.geolearning.geonext.webservices.User | |
---|---|
Class Name | com.geolearning.geonext.webservices.User |
Methods |
|
| ||||||
Parent Class |
|
|
|
|
|
--
ws = createObject("webservice", local.lms.wsurl)user = ws.GenerateUserObject();That's generated from ColdFusion.
UserStatus = javaLoader.create("com.geolearning.geonext.webservices.Status");That's generated from JavaLoader
user.setStatus(UserStatus.Active);That's mixing classpaths.you * may* be able to fix this by switching up the threadcontext classloader.Be tempted to see if you ran the block of code in a switched out TCCL, if it would work. It *may*Mark
Uh. I'm willing to bet you're trying to use Javaloader and have classpath set at the server level at the same time.
(a) that's a bad idea (b) not sure if this will work with Javaloader without it.
See:ws = createObject("webservice", local.lms.wsurl)user = ws.GenerateUserObject();That's generated from ColdFusion.
UserStatus = javaLoader.create("com.geolearning.geonext.webservices.Status");That's generated from JavaLoader
user.setStatus(UserStatus.Active);That's mixing classpaths.
you * may* be able to fix this by switching up the threadcontext classloader.Be tempted to see if you ran the block of code in a switched out TCCL, if it would work. It *may*
iirc createobject("webservice") uses apache axis to compile the weber vice into a set of classes. If you can't mix CF generated ws with java loader, you could try using axis to compile the ws externally and then loading everything through java loader?
--
Oh that makes a lot of sense.Wonder what would have happened if you just turned on having the CF classpath be the parent.
But that works well.Although, make sure not to recreate that JL instance over and over, you'll end up with a permgen memory leak.
On Mon, Mar 25, 2013 at 7:06 PM, Mark Mandel <mark....@gmail.com> wrote:
Oh that makes a lot of sense.Wonder what would have happened if you just turned on having the CF classpath be the parent.That didn't work. Those client classed don't exist in the general CF classpath, they seem to be "private" to the web service, itself.
But that works well.Although, make sure not to recreate that JL instance over and over, you'll end up with a permgen memory leak.Thanks for that tip. That's something I'll need to work in.On a related note, though, since I need to create JavaLoader in the context of the web service: Are web service objects candidates for keeping in a persistent scope? As far as I know, they're Singletons, but I don't know if they have some sort of limited lifespan that would prevent me from only creating them once (say in the app scope).(I'm new to consuming web services from CF, so I haven't worked out all of this stuff out yet.)