Я пытался вызвать компонент ColdFusion из Java и выполнить следующее:
http://www.forta.com/misc/cfcproxy.htm
https://helpx.adobe.com/coldfusion/developing-applications/using-web-elements-and-external-objects/integrating-jee-and-java-elements-in-cfml-applications/enhanced-java-integration-in-coldfusion.html
Java-версия: 1.8.0_141
Я добавил необходимые jar-файлы в путь сборки:
cfmx_bootstrap.jar
cfusion.jar
javax.servlet.jsp.jar
javax.servlet-api-3.0.1.jar ( Servlet jars added as on running java program it was throwing ClassNotFound errors )
После этого добавил Test.java :
import coldfusion.cfc.CFCProxy;
public class Test {
public static void main(String args[]) throws ClassNotFoundException {
Test test = new Test();
System.out.println(test.invoke().toString());
}
public String invoke() {
String cfOp = null;
try {
// Instantiate CFC
CFCProxy myCFC = new CFCProxy("D:\\practice\\cf_java.cfc", true);
// Build arguments array
Object[] myArgs = { "Java invocation!" };
// invoke method from CFC. It returns a string.
cfOp = (String) myCFC.invoke("getData", myArgs);
} catch (Throwable ex) {
ex.printStackTrace();
}
return cfOp;
}
}
Затем добавлено Test.class в / JavaClass /
Application.cfc:
<cfcomponent>
<cfset THIS.name = "CFTest">
<cfset THIS.javaSettings = {
LoadPaths = ["\JavaClass\"],
reloadOnChange=true,
watchInterval=10,
reloadOnChange = true
}>
</cfcomponent>
cf_java.cfc:
<cfcomponent>
<cffunction name="getData" returntype="string">
<cfargument name="msg" required="Yes">
<cfreturn "I am alive!">
</cffunction>
</cfcomponent>
И, наконец, запустил Test.java как Java-приложение, и я получаю следующее:
java.lang.RuntimeException: CFCServlet must be initialized
at coldfusion.cfc.CFCProxy.<init>(CFCProxy.java:121)
at coldfusion.cfc.CFCProxy.<init>(CFCProxy.java:73)
at Test.invoke(Test.java:15)
at Test.main(Test.java:7)
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:7)
Я что-то пропустил?Любые предложения!
Также из Adobe Docs:
Для вызова CFC, загрузчик классов ColdFusion должен быть текущим загрузчиком классов.
Может кто угоднообъясните пожалуйста или поделитесь ссылками?