Вызов адаптера рабочего света java получил ошибку Ecma ReferenceError

Кажется, ошибка связана с пакетом класса java, если он начинается с com.xx.xx, он работает, если он начинается с cn.xx.xx, ошибка выдаст. это ошибка?

Класс Java:

package cn.linkey.util;

public class TestJava {

    public String md5(String aa){
        return "md5" + aa;
    }

}

Адаптер:

function sayHello(name){
    var tj = new cn.linkey.util.TestJava();

    return {result: "hello " + tj.md5(name) + '.'};
}

Ошибка:

{
       "errors": [
      "Ecma Error: ReferenceError: \"cn\" is not defined. (TestHTTP-impl.js#41)"
   ],
   "info": [
   ],
   "isSuccessful": false,
   "warnings": [
   ]
}

Ошибка сервера:

[ERROR   ] FWLSE0099E: An error occurred while invoking procedure  [project     HelloWL]TestHTTP/sayHelloFWLSE0100E:  parameters: [project HelloWL]
ReferenceError: "cn" is not defined. (TestHTTP-impl.js#41)
FWLSE0101E: Caused by:  [project HelloWL]nullorg.mozilla.javascript.EcmaError: ReferenceError:     "cn" is not defined. (TestHTTP-impl.js#41)
        at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3687)
        at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3665)
        at org.mozilla.javascript.ScriptRuntime.notFoundError(ScriptRuntime.java:3750)
         at org.mozilla.javascript.ScriptRuntime.name(ScriptRuntime.java:1728)
        at org.mozilla.javascript.gen.TestHTTP_impl_js_6._c_sayHello_1(TestHTTP-impl.js:41)
        at org.mozilla.javascript.gen.TestHTTP_impl_js_6.call(TestHTTP-impl.js)
        at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
        at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
        at org.mozilla.javascript.gen.TestHTTP_impl_js_6.call(TestHTTP-impl.js)
        at com.worklight.integration.js.JavaScriptManager.callFunction(JavaScriptManager.java:240)
        at com.worklight.integration.js.JavaScriptManager.invokeFunction(JavaScriptManager.java:214)
        at com.worklight.integration.js.JavaScriptManager.invokeFunction(JavaScriptManager.java:194)
        at com.worklight.integration.services.impl.AdapterManagerImpl.invokeFunction(AdapterManagerImpl.java:117)
        at com.worklight.integration.js.JavaScriptProcedureInvoker.invoke(JavaScriptProcedureInvoker.java:42)
        at com.worklight.integration.model.ProcedureInvoker.invokeProcedure(ProcedureInvoker.java:57)
        at com.worklight.integration.model.Procedure.invoke(Procedure.java:166)
        at com.worklight.integration.model.InvocationContext.call(InvocationContext.java:169)
        at com.worklight.integration.model.InvocationContext.call(InvocationContext.java:38)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at com.worklight.server.util.ProjectLocal$1RunnableWrapper.run(ProjectLocal.java:261)
        at java.lang.Thread.run(Thread.java:695)

1 ответ

Решение

В документации Worklight конкретно упоминается использование только com/org/net в качестве префикса пакета, тогда как вы используете cn,

См. Слайд № 7 в учебном модуле " Использование Java в адаптерах ".
Измените используемый префикс, так как это, вероятно, решит проблему, с которой вы столкнулись.

Другие вопросы по тегам