sun.org.mozilla.javascript.internal.EcmaError:ReferenceError
我在一个xml文件中创建了一个流程定义。 在这个过程中,我有一个步骤,假设将数据插入mysql数据库,但当我运行代码时,我得到以下错误:sun.org.mozilla.javascript.internal.EcmaError:ReferenceError,java,javascript,mysql,xml,activiti,Java,Javascript,Mysql,Xml,Activiti,我在一个xml文件中创建了一个流程定义。 在这个过程中,我有一个步骤,假设将数据插入mysql数据库,但当我运行代码时,我得到以下错误: Exception in thread "main" org.activiti.engine.ActivitiException: problem evaluating script: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError:"ReportingUtil"is not def
Exception in thread "main" org.activiti.engine.ActivitiException: problem evaluating
script: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError:"ReportingUtil"is
not defined.(<Unknown source>#7) in <Unknown source> at line number
at
org.activiti.engine.impl.scripting.ScriptingEngines.evaluate(ScriptingEngines.java:89)
...
Caused by: javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError:
ReferenceError: "ReportingUtil" is not defined. (<Unknown source>#7) in <Unknownsource>
at
line number 7
at com.sun.script.javascript.RhinoScriptEngine.eval(Unknown Source)
...
线程“main”org.activiti.engine.activitieException中的异常:评估问题
脚本:sun.org.mozilla.javascript.internal.EcmaError:ReferenceError:“ReportingUtil”为
未在at行号中定义。(#7)
在
org.activiti.engine.impl.scripting.ScriptingEngines.evaluate(ScriptingEngines.java:89)
...
原因:javax.script.ScriptException:sun.org.mozilla.javascript.internal.EcmaError:
ReferenceError:未定义“ReportingUtil”。(#7)英寸
在
第7行
位于com.sun.script.javascript.RhinoScriptEngine.eval(未知源)
...
我从java类启动流程引擎
这是我的流程定义:
<?xml version="1.0"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:activiti="http://activiti.org/bpmn"
targetNamespace="http://activiti.org/bpmn20" id="definitions">
<process id="simpleEmailProcess" name="simple email">
<startEvent id="theStart"/>
<sequenceFlow id="flow1" targetRef="sendMail" sourceRef="theStart"/>
<sequenceFlow id="flow2" targetRef="waitState" sourceRef="sendMail"/>
<serviceTask id="sendMail" activiti:class="org.mywebbapp.activiti.RiskProcess"
activiti:type="mail">
<extensionElements>
<activiti:field name="from" stringValue="workflowact@gmail.com"/>
<activiti:field name="to" expression="${recipient}"/>
<activiti:field name="subject" expression="Are you responsible for risk ${riskID}?"/>
<activiti:field name="html">
<activiti:expression>
<![CDATA[ <html> <body> Hello ${name},<br/><br/> Are you responsibible for risk
${riskID}? Please reply to this email by either Y/N.<br/><br/> Kind regards,<br/>
The company. </body> </html> ]]>
</activiti:expression>
</activiti:field>
</extensionElements>
</serviceTask>
<receiveTask id="waitState" name="wait" />
<scriptTask id="generateDataset" name="Execute script" scriptFormat="JavaScript" activiti:autoStoreVariables="false">
<script><![CDATA[
importPackage(java.sql);
importPackage(java.lang);
importPackage(org.activiti.explorer.reporting.ReportUtil);
ReportingUtil.executeSelectSqlQuery("insert into risk values ('123', 'user@gmail.com', 'Y')");
]]></script>
</scriptTask>
<sequenceFlow id="flow3" targetRef="generateDataset" sourceRef="waitState"/>
<sequenceFlow id="flow4" targetRef="theEnd" sourceRef="generateDataset"/>
<endEvent id="theEnd"/>
你好${name},
你有责任承担风险吗
${riskID}?请通过Y/N回复此电子邮件。
问候,
公司。]]>
我在这里的某个地方读过,所以需要使用绑定?
有什么建议吗
谢谢
您正试图将一个类作为一个包。使用导入类
我假设Java 8和Nashorn。我有一个模块,要求我使用一个特定的Util类,与您正在使用的类似 试试这个
Packages.org.activiti.explorer.reporting.ReportingUtil.executeSelectSqlQuery(
"insert into risk values ('123', 'user@gmail.com', 'Y')");]]
谢谢你的快速回复!我尝试使用importClass(org.activiti.explorer.reporting);代替进口包装(org.activiti.explorer.reporting);但这给了我一个错误:javax.script.ScriptException:sun.org.mozilla.javascript.internal.EvaluatorException:Function importClass必须用类调用;是否改为“[JavaPackage org.activiti.explorer.reporting]”?我不明白,我对js都是新手。我忘了说我在使用Java6,没有使用Nashorn,使用Rhino。试试
importPackage(org.activiti.explorer.reporting)代码>嗨,我试过了,没什么区别,我还是会遇到同样的错误。对不起,我的意思是:importPackage(Packages.org.activiti.explorer.reporting)代码>。或者,importClass(Packages.org.activiti.explorer.reporting.ReportUtil)代码>
Packages.org.activiti.explorer.reporting.ReportingUtil.executeSelectSqlQuery(
"insert into risk values ('123', 'user@gmail.com', 'Y')");]]