unable to instantiate Amazon Pay java sdk in ColdFusion

134 views Asked by At

I'm working on implementing Amazon Pay, and instead of converting one of the SDKs to CF, figured I would just use the java sdk - but, I haven't ever worked with anything that is not part of the java core install. Any ideas why this

createObject('java', 'com.amazon.pay.api.WebstoreClient')

is not working ( Object instantiation exception. Error: org/json/JSONException.) when I drop the jar in cfusion\wwwroot\web_inf\lib.

the jar file came from here: https://github.com/amzn/amazon-pay-api-sdk-java/releases

I suspect that the issue is with the import statements for the "core" libraries, but don't know why CF wouldn't be able to find them (seems pretty basic) so I must be doing something wrong.

Windows 10 dev box running CF2016, dev install with a single instance, both restarted and rebooted.

ANSWERED BY @SOS IN THE COMMENTS - reposted here.

  1. Downloaded the sdk to c:/path/to/lib/amazon-pay-api-2.5.1.jar.
  2. Added
this.javaSettings = { 
    LoadPaths = [ "c:/path/to/lib/amazon-pay-api-2.5.1.jar"], 
    loadColdFusionClassPath=true };
  1. Restarted Application.cfc

Edited to add code and complete error

This is the complete contents of the file that errors. I have tried both ways and get the same error - 
<!--- <cfobject action="create" type="java" class="com.amazon.pay.api.WebstoreClient" name="WebstoreClient"> --->

<cfset wsClient=createObject('java', 'com.amazon.pay.api.WebstoreClient')>

<cfdump var="#wsClient#">

The error

Object instantiation exception.
An exception occurred while instantiating a Java object. 
Error: org/json/JSONException.
 
The error occurred in E:/webroot/striking/d.cfm: line 2
1 : <!--- <cfobject action="create" type="java" class="com.amazon.pay.api.WebstoreClient" name="WebstoreClient"> --->
2 : <cfset wsClient=createObject('java', 'com.amazon.pay.api.WebstoreClient')>
3 : 
4 : <cfdump var="#wsClient#">
Resources:
Check the ColdFusion documentation to verify that you are using the correct syntax.
Search the Knowledge Base to find a solution to your problem.
Browser     Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36
Remote Address      127.0.0.1
Referrer    
Date/Time   27-May-22 10:20 AM
Stack Trace
at cfd2ecfm486526222.runPage(E:/webroot/striking/d.cfm:2) at cfd2ecfm486526222.runPage(E:/webroot/striking/d.cfm:2)

java.lang.NoClassDefFoundError: org/json/JSONException
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
    at java.lang.Class.privateGetPublicFields(Class.java:2614)
    at java.lang.Class.getFields(Class.java:1557)
    at coldfusion.runtime.java.ObjectHandler.Initialize(ObjectHandler.java:35)
    at coldfusion.runtime.java.ObjectHandler.<init>(ObjectHandler.java:30)
    at coldfusion.runtime.java.ReflectionCache.get(ReflectionCache.java:47)
    at coldfusion.runtime.java.JavaProxy.<init>(JavaProxy.java:35)
    at coldfusion.runtime.java.JavaProxyFactory.getProxy(JavaProxyFactory.java:121)
    at coldfusion.runtime.ProxyFactory.getProxy(ProxyFactory.java:68)
    at coldfusion.runtime.CFPage.createObjectProxy(CFPage.java:6608)
    at coldfusion.runtime.CFPage.CreateObject(CFPage.java:6571)
    at coldfusion.runtime.CFPage.CreateObject(CFPage.java:6505)
    at coldfusion.runtime.CFPage.CreateObject(CFPage.java:6431)
    at coldfusion.runtime.CFPage.CreateObject(CFPage.java:6372)
    at cfd2ecfm486526222.runPage(E:\webroot\striking\d.cfm:2)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:251)
    at coldfusion.tagext.lang.IncludeTag.handlePageInvoke(IncludeTag.java:737)
    at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:573)
    at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
    at coldfusion.filter.IpFilter.invoke(IpFilter.java:45)
    at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:505)
    at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:43)
    at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
    at coldfusion.filter.PathFilter.invoke(PathFilter.java:153)
    at coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:30)
    at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94)
    at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:78)
    at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
    at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
    at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:60)
    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:219)
    at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
    at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at coldfusion.inspect.weinre.MobileDeviceDomInspectionFilter.doFilter(MobileDeviceDomInspectionFilter.java:121)
    at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at com.seefusion.Filter.doFilter(Filter.java:109)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at com.seefusion.SeeFusionValve.invoke(SeeFusionValve.java:52)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:536)
    at org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:898)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.json.JSONException
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1308)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1142)
    ... 68 more

Regards,

M

0

There are 0 answers