activit jdk8 scripttask

activit jdk8 scripttask
scripttask在使用jdk 8的JavaScript脚本时对外java对象的类获取不到,这里有的处理方法为:
load("nashorn:mozilla_compat.js");
// Import the java.awt package
importPackage(java.awt);
// Import the java.awt.Frame class
importClass(java.awt.Frame);
// Create a new Frame object
var frame = new java.awt.Frame("hello");
// Call the setVisible() method
frame.setVisible(true);
// Access a JavaBean property
print(frame.title);

在脚本的最前边加入
load("nashorn:mozilla_compat.js");
这句话,即可。

注意2:
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
    <property name="dataSource" ref="dataSource" />
    <property name="transactionManager" ref="transactionManager"/>
    <property name="databaseSchemaUpdate" value="true"/>
    <property name="jobExecutorActivate" value="true"/>
    <!--<property name="history" value="full"/>-->
    <property name="processDefinitionCacheLimit" value="10"/>
    
    <property name="beans">
        <map>
            <entry key="shellUtils">
                <bean id="shellUtils" class="com.duxiu.modules.activiti.utils.ShellUtils" />
            </entry>
        </map>
    </property>
</bean>
这里的bean属性可以将ShellUtils类暴露给JavaScript脚本来使用,不同的地方是:
jdk7版本ShellUtils类里的方法可以静态方法暴露出去,但是jdk8则不行,只能暴露public方法。

http://docs.oracle.com/javase/8/docs/technotes/guides/scripting/prog_guide/javascript.html#A1147207

你可能感兴趣的:(activit jdk8 scripttask)