以下は、Coldfusion9.0.1とRailo4.0.2.002を比較して行われます。
私はcfcのinitとして次の(切り捨てられた)を持っています
component {
public myComponent function init(
required string inSetting1,
required string inSetting2
) {
return this;
}
}
以下を実行すると、正しく呼び出されます
objInstance = new myComponent(
inSetting1 = 'xxx',
inSetting2 = 'yyy'
);
ただし、必要なすべての引数を指定せずに、このオブジェクトを要求する設定ミスを処理しようとしています。これまでのところ、私は次のものを持っています
try {
// inSetting2 is not defined == will cause error
objInstance = new myComponent(
inSetting1 = 'xxx'
);
} catch (coldfusion.runtime.MissingArgumentException e) {
// This catches the error for CF 9.0.1
} catch (expression e) {
// This catches the error for Railo 4.0.2
debug(e); // get the error dump for stack trace below
}
これまでのところ、スタックトレースからexpression
の開口部に基づいて、次のことを試しましたが、役に立ちませんでしたrailo.runtime.type.UDFImpl.defineArguments(UDFImpl.java:171)
(これが、CF9の特定のタイプを取得する方法です)。
- ライロ
- railo.runtime
- railo.runtime.type
- railo.runtime.type.UDFImpl
- railo.runtime.type.UDFImpl.defineArguments
今ではできることcatch (expression e)
もcatch (any e)
あれば、特定のエラーをキャッチすることもできますが、Railoで動作するように現在更新しているコンポーネント内の一部の場所では、理由を特定できることに依存しているという単純な理由があります。構成エラー(引数の欠落)とデプロイメントエラー(テンプレートの欠落)を区別できない場合。
だから、私が上記のtry / catchを具体的に同等のものcoldfusion.runtime.MissingArgumentException
(または、さらに言えば、メソッドを呼び出し/実行する前に必要な引数をチェックできるメソッド)を探すことができるメソッドを知っている人はいますか? s)問題)
編集:スタックトレースを含めるのを忘れました。これがRailoスタックトレースです。私もすでに次の代わりに試しましたexpression
The parameter environment to function init is required but was not
passed in. at
railo.runtime.type.UDFImpl.defineArguments(UDFImpl.java:171):171 at
railo.runtime.type.UDFImpl._call(UDFImpl.java:369):369 at
railo.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:275):275
at railo.runtime.ComponentImpl._call(ComponentImpl.java:608):608 at
railo.runtime.ComponentImpl._call(ComponentImpl.java:490):490 at
railo.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1800):1800
at
railo.runtime.functions.other._CreateComponent.call(_CreateComponent.java:49):49
at
mso.dev_test315.mycomponenttest_cfc$cf._1(/var/www/html/myComponentTest.cfc:133):133
at
mso.dev_test315.mycomponenttest_cfc$cf.udfCall(/var/www/html/myComponentTest.cfc):-1
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:103):103 at
railo.runtime.type.UDFImpl._call(UDFImpl.java:371):371 at
railo.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:275):275
at railo.runtime.ComponentImpl._call(ComponentImpl.java:608):608 at
railo.runtime.ComponentImpl._call(ComponentImpl.java:490):490 at
railo.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1796):1796
at railo.runtime.tag.Invoke.doComponent(Invoke.java:209):209 at
railo.runtime.tag.Invoke.doEndTag(Invoke.java:182):182 at
mxunit.framework.testcase_cfc$cf._2(/var/www/html/mxunit/framework/TestCase.cfc:115):115
at
mxunit.framework.testcase_cfc$cf.udfCall(/var/www/html/mxunit/framework/TestCase.cfc):-1
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:103):103 at
railo.runtime.type.UDFImpl._call(UDFImpl.java:371):371 at
railo.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:275):275
at railo.runtime.ComponentImpl._call(ComponentImpl.java:608):608 at
railo.runtime.ComponentImpl._call(ComponentImpl.java:490):490 at
railo.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1800):1800
at
railo.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:749):749
at
railo.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1521):1521
at
mxunit.framework.decorators.dataproviderdecorator_cfc$cf._1(/var/www/html/mxunit/framework/decorators/DataProviderDecorator.cfc:31):31
at
mxunit.framework.decorators.dataproviderdecorator_cfc$cf.udfCall(/var/www/html/mxunit/framework/decorators/DataProviderDecorator.cfc):-1
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:103):103 at
railo.runtime.type.UDFImpl._call(UDFImpl.java:371):371 at
railo.runtime.type.UDFImpl.call(UDFImpl.java:284):284 at
railo.runtime.ComponentImpl._call(ComponentImpl.java:607):607 at
railo.runtime.ComponentImpl._call(ComponentImpl.java:490):490 at
railo.runtime.ComponentImpl.call(ComponentImpl.java:1781):1781 at
railo.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:723):723
at
railo.runtime.PageContextImpl.getFunction(PageContextImpl.java:1506):1506
at
mxunit.framework.testsuiterunner_cfc$cf._1(/var/www/html/mxunit/framework/TestSuiteRunner.cfc:99):99
at
mxunit.framework.testsuiterunner_cfc$cf.udfCall(/var/www/html/mxunit/framework/TestSuiteRunner.cfc):-1
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:103):103 at
railo.runtime.type.UDFImpl._call(UDFImpl.java:371):371 at
railo.runtime.type.UDFImpl.call(UDFImpl.java:284):284 at
railo.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:774):774
at
railo.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:723):723
at
railo.runtime.PageContextImpl.getFunction(PageContextImpl.java:1506):1506
at
mxunit.framework.testsuiterunner_cfc$cf._1(/var/www/html/mxunit/framework/TestSuiteRunner.cfc:52):52
at
mxunit.framework.testsuiterunner_cfc$cf.udfCall(/var/www/html/mxunit/framework/TestSuiteRunner.cfc):-1
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:103):103 at
railo.runtime.type.UDFImpl._call(UDFImpl.java:371):371 at
railo.runtime.type.UDFImpl.call(UDFImpl.java:284):284 at
railo.runtime.ComponentImpl._call(ComponentImpl.java:607):607 at
railo.runtime.ComponentImpl._call(ComponentImpl.java:490):490 at
railo.runtime.ComponentImpl.call(ComponentImpl.java:1781):1781 at
railo.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:723):723
at
railo.runtime.PageContextImpl.getFunction(PageContextImpl.java:1506):1506
at
mxunit.framework.testsuite_cfc$cf._1(/var/www/html/mxunit/framework/TestSuite.cfc:131):131
at
mxunit.framework.testsuite_cfc$cf.udfCall(/var/www/html/mxunit/framework/TestSuite.cfc):-1
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:103):103 at
railo.runtime.type.UDFImpl._call(UDFImpl.java:371):371 at
railo.runtime.type.UDFImpl.call(UDFImpl.java:284):284 at
railo.runtime.ComponentImpl._call(ComponentImpl.java:607):607 at
railo.runtime.ComponentImpl._call(ComponentImpl.java:490):490 at
railo.runtime.ComponentImpl.call(ComponentImpl.java:1781):1781 at
railo.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:723):723
at
railo.runtime.PageContextImpl.getFunction(PageContextImpl.java:1506):1506
at
mxunit.framework.remotefacade_cfc$cf._1(/var/www/html/mxunit/framework/RemoteFacade.cfc:76):76
at
mxunit.framework.remotefacade_cfc$cf.udfCall(/var/www/html/mxunit/framework/RemoteFacade.cfc):-1
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:103):103 at
railo.runtime.type.UDFImpl._call(UDFImpl.java:371):371 at
railo.runtime.type.UDFImpl.call(UDFImpl.java:284):284 at
railo.runtime.ComponentImpl._call(ComponentImpl.java:607):607 at
railo.runtime.ComponentImpl._call(ComponentImpl.java:498):498 at
railo.runtime.ComponentImpl.call(ComponentImpl.java:1789):1789 at
railo.runtime.ComponentWrap.call(ComponentWrap.java:165):165 at
railo.runtime.net.rpc.server.ComponentController._invoke(ComponentController.java:56):56
at
railo.runtime.net.rpc.server.ComponentController.invoke(ComponentController.java:34):34
at __138.mxunit.framework.remotefacade_wrap.executeTestCase(Unknown
Source):-1 at sun.reflect.GeneratedMethodAccessor61.invoke(Unknown
Source):-1 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
Source):-1 at java.lang.reflect.Method.invoke(Unknown Source):-1 at
org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397):397
at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186):186
at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323):323
at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32):32
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118):118 at
org.apache.axis.SimpleChain.invoke(SimpleChain.java:83):83 at
org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454):454
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281):281
at
railo.runtime.net.rpc.server.RPCServer.doPost(RPCServer.java:312):312
at
railo.runtime.ComponentPage.callWebservice(ComponentPage.java:783):783
at railo.runtime.ComponentPage.call(ComponentPage.java:155):155 at
railo.runtime.PageContextImpl.doInclude(PageContextImpl.java:801):801
at
railo.runtime.PageContextImpl.doInclude(PageContextImpl.java:753):753
at
railo.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:183):183
at
railo.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:18):18
at
railo.runtime.PageContextImpl.execute(PageContextImpl.java:2255):2255
at
railo.runtime.PageContextImpl.execute(PageContextImpl.java:2222):2222
at
railo.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:310):310
at railo.loader.servlet.CFMLServlet.service(CFMLServlet.java:29):29 at
javax.servlet.http.HttpServlet.service(HttpServlet.java:728):728 at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305):305
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210):210
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222):222
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123):123
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472):472
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171):171
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99):99
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118):118
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407):407
at
org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200):200
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589):589
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310):310
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown
Source):-1 at
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source):-1
at java.lang.Thread.run(Unknown Source):-1