JRun Servlet error while trying to use java object

We have a site in ColdFusion that integrates with a credit card provider using Java components.

When calling a specific function for a java object:

<cfset ResponseObject = AgentObject.request(RequestObject, LogObject)> 

Where ResponseObject, AgentObject, and LogObject is a Java object created as:

 <cftry> <cfset AgentObject = createObject("java","com.providername.client.Agent")> <cfcatch type="any"> Do something. </cfcatch> </cftry> 

The page displays the following: execution paused.

 <head> <title>JRun Servlet Error</title> </head> <h1>500 Transaction fails verification<br> BadRequest: Request fails verification checks<br> BadCardNumber: Card length was 16, but we were expecting 0<br> </h1> <body> Transaction fails verification<br> BadRequest: Request fails verification checks<br> BadCardNumber: Card length was 16, but we were expecting 0<br> </body> 

An error is expected (we are checking the card data), but it seems I can’t catch it. A cftry and cfcatch has no effect, so I totally don’t understand how I can handle this error and continue execution.

Can anyone help?

Greetings

Tom

Edit - additional error information

I thought it might also be useful to post this stack trace. It is not available through Coldfusion, but is instead written to the file as part of the LogObject above, presumably in Java code:

  com.providername.client.errors.VerifyErrorReport: Transaction fails verification com.providername.client.errors.BadRequest: Request fails verification checks com.providername.client.errors.BadCardNumber: Card length was 16, but we were expecting 0 at com.providername.util.CardInfo.verifyCardNumber(CardInfo.java:412) at com.providername.util.CardInfo.validateCardInfo(CardInfo.java:789) at com.providername.util.CardInfo.validateCardInfo(CardInfo.java:838) at com.providername.client.Agent.setupTransaction(Agent.java:681) at com.providername.client.Agent.setupTransaction(Agent.java:692) at com.providername.client.Agent.request(Agent.java:281) at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at coldfusion.runtime.java.JavaProxy.invoke(JavaProxy.java:74) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:1634) at cfprovidername2ecfc526409752$funcSENDXMLOBJECT.runFunction(D:\site\components\providername.cfc:210) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:344) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:290) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:254) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:56) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:207) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:169) at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:1807) at cftransactions2ecfc114461696$funcTRANSACTION.runFunction(D:\site\components\transactions.cfc:175) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:344) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:290) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:254) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:56) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:207) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:366) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:198) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:157) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:1594) at coldfusion.tagext.lang.InvokeTag.doEndTag(InvokeTag.java:341) at cfauthorise2dprovidername2ecfm1546743078._factor7(D:\site\payment\authorise-providername.cfm:224) at cfauthorise2dprovidername2ecfm1546743078._factor27(D:\site\payment\authorise-providername.cfm:164) at cfauthorise2dprovidername2ecfm1546743078._factor30(D:\site\payment\authorise-providername.cfm:91) at cfauthorise2dprovidername2ecfm1546743078.runPage(D:\site\payment\authorise-providername.cfm:1) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152) at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:349) at coldfusion.runtime.CfJspPage._emptyTag(CfJspPage.java:1915) at cfauthorise2ecfm767248619.runPage(D:\site\payment\authorise.cfm:10) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152) at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:349) at coldfusion.runtime.CfJspPage._emptyTag(CfJspPage.java:1915) at cftemplate2ecfm1091873885._factor4(D:\site\server\template.cfm:247) at cftemplate2ecfm1091873885.runPage(D:\site\server\template.cfm:1) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152) at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:349) at coldfusion.runtime.CfJspPage._emptyTag(CfJspPage.java:1915) at cfapplication2ecfm1526755454._factor31(D:\site\application.cfm:673) at cfapplication2ecfm1526755454.runPage(D:\site\application.cfm:1) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152) at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:349) at coldfusion.runtime.CfJspPage._emptyTag(CfJspPage.java:1915) at cfApplication2ecfm1608241748.runPage(D:\site\payment\Application.cfm:30) 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.CfincludeFilter.include(CfincludeFilter.java:33) at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:172) 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.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) 
+4
source share
1 answer

I'm a little late to the party, but what you get is not JRun's error per se. It seems that the error occurs in the JRE, and JRun shows it as a "Servlet Error". Notice the lines in the stack trace:

 com.providername.client.errors.VerifyErrorReport: Transaction fails verification com.providername.client.errors.BadRequest: Request fails verification checks com.providername.client.errors.BadCardNumber: Card length was 16, but we were expecting 0 at com.providername.util.CardInfo.verifyCardNumber(CardInfo.java:412) 

It looks like the error generated by the CardInfo class in verifyCardNumber () on line 412. I think JRun just executes this error as a “servlet error” because there is a hard stop in com.providername.client.errors.VerifyErrorReport.

It could also be the reason that your <cfcatch> will not catch this exception. The Java class can catch this error and throw this exception in Java, which causes this ugly JRun 500 error.

If you don’t have a Java source to check why you get this exception in CardInfo, you should contact the people who own the source to find out if they have any understanding.

Hope this helps you.

+2
source

Source: https://habr.com/ru/post/1303700/


All Articles