CFCServlet должен быть инициализирован - PullRequest
0 голосов
/ 25 апреля 2018

Я пытался вызвать компонент 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 должен быть текущим загрузчиком классов.

Может кто угоднообъясните пожалуйста или поделитесь ссылками?

...