我一直在敲打这个问题一段时间,似乎找不到任何合适的答案或解释这些错误。我正在使用第三方JAR" PropHandler.jar" 我试图调用getMessageList方法,它接受3个args并需要一个配置文件。
<cfset configFile = 'C:\data\getMsgListCONFIG.xml'>
<cfset Obj = createObject("java","client.PropHandler") />
<cfdump var="#Obj#">
一切都很好,我的转储返回一个方法列表。现在,我需要将我的配置文件添加到方法中并传入我的args,没有爱在这里,我试过这个:
<cfset x = Obj.getMessageList.init(configFile)>
和
<cfset x = Obj.getMessageList().init(configFile)>
和
<cfset x = Obj.getMessageList('identifier', 'greaterthan', '2012-05-18T12:00:00-04:00').init(configFile)>
甚至尝试通过创建对象进行初始化:
<cfset Obj = createObject("java","client.PropHandler").getMessageList('identifier', 'greaterthan', '2012-05-18T12:00:00-04:00').init(configFile)>
全部返回相同的错误:
对象实例化异常
实例化Java对象时发生异常。班级 不能是接口或抽象类。如果班级有 接受参数的构造函数,必须调用构造函数 显式使用init(args)方法。错误:client.PropertyHandler
当我没有发送3个参数时,我得到一个方法未找到错误,如果我没有发送init,我会得到同样的错误。
所以,我没有很多JAVA的经验,我不明白错误信息。从命令行调用时,甚至在使用BAT文件执行时,我都可以使用JAR,但是当我这样做时,我无法将XML SOAP数组返回给我...
来自Java Doc:
PropertyHandler
public PropertyHandler(java.lang.String propFile) throws java.lang.Exception
使用属性文件设置所有程序变量。这个性质 文件是指标识用户ID和的第二个属性文件 安全文件数据。
参数:
- 的XML文件
propFile
- 属性投掷:
java.lang.Exception
getMessageList
public services.[...].GetResponseTypeDef getMessageList(java.lang.String par1, java.lang.String comp_Op1, java.lang.String parValue1 )
重写X_Properties以返回每个元数据的元数据列表 满足函数参数定义的查询的消息。
参数:
- 之一
par1
- 参数枚举comp_Op1
- CompOp枚举之一parValue1
- 比较值返回:
元数据消息列表会议查询条件如果是,则返回null 遇到异常而不是抛出异常。
答案 0 :(得分:2)
通话的结构如下:
<cfset Obj = createObject("java","client.PropHandler") />
<cfset Meth = Obj.init(argfile).getMessageList(arg1,arg2,arg3)>
argfile
变量是XML配置文件的路径,它还使用相对路径引用了另一个配置文件。一旦路径更改为绝对内部argfile
,错误就解决了,我从堆栈跟踪(下面)中发现了此错误。
Stack Trace at cf_getMsgs2ecfm497532872.runPage(E:\的Inetpub \ wwwroot_getMsgs.cfm:24) 在 cf_getMsgs2ecfm497532872.runPage(E:\ Inetpub \ wwwroot_getMsgs.cfm:24)
java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at coldfusion.runtime.java.JavaProxy.CreateObject(JavaProxy.java:156) 在coldfusion.runtime.java.JavaProxy.invoke(JavaProxy.java:63)at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272)at cf_getMsgs2ecfm497532872.runPage(E:\的Inetpub \ wwwroot_getMsgs.cfm:24) 在coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:196)at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:370)at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:279) 在 coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) 在 coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) at coldfusion.filter.PathFilter.invoke(PathFilter.java:86)at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70)at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:74) 在 coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) 在coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)at at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) 在coldfusion.CfmServlet.service(CfmServlet.java:175)at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) 在jrun.servlet.FilterChain.doFilter(FilterChain.java:86)at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) 在 coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) 在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) 在 jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543) 在 jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203) 在 jrunx.scheduler.ThreadPool $ DownstreamMetrics.invokeRunnable(ThreadPool.java:320) 在 jrunx.scheduler.ThreadPool $ ThreadThrottle.invokeRunnable(ThreadPool.java:428) 在 jrunx.scheduler.ThreadPool $ UpstreamMetrics.invokeRunnable(ThreadPool.java:266) 在jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)引起: java.io.FileNotFoundException:.. \ data \ APIproperties.xml(系统 找不到指定的路径) at java.io.FileInputStream.open(Native Method)at java.io.FileInputStream。(FileInputStream.java:106)at java.io.FileInputStream。(FileInputStream.java:66)at client.PropertyHandler。(PropertyHandler.java:133)
感谢@Leigh和@imthepitts