WSO2AM 1.5中的脚本中介程序错误

WSO2AM 1.5中的脚本中介程序错误,wso2,mediator,Wso2,Mediator,我尝试添加一个包含java脚本中介的序列,如下所示: ” mc.setPayloadXML( 问候Hello World/问候语 ); " *然而,一旦我按下更新按钮,就会发生错误,整个函数堆栈显示在日志中,我检查jar“bsf all,3.0.0.wso2v2”,它确实包含缺少的类,jar显示在bundles信息“bsf all,3.0.0.wso2v2,../plugins/bsf-all_3.0.0.wso2v2.jar,4,true”:* “com/sun/phobos/script/

我尝试添加一个包含java脚本中介的序列,如下所示:

”
mc.setPayloadXML(
问候Hello World/问候语
);
"
*然而,一旦我按下更新按钮,就会发生错误,整个函数堆栈显示在日志中,我检查jar“bsf all,3.0.0.wso2v2”,它确实包含缺少的类,jar显示在bundles信息“bsf all,3.0.0.wso2v2,../plugins/bsf-all_3.0.0.wso2v2.jar,4,true”:*com/sun/phobos/script/javascript/RhinoScriptEngineFactory{org.apache.axis2.rpc.receivers.RPCMessageReceiver}” java.lang.reflect.InvocationTargetException 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 原因:java.lang.NoClassDefFoundError:com/sun/phobos/script/javascript/RhinoScriptEngineFactory 位于org.apache.synapse.mediators.bsf.ScriptMediator.initScriptEngine(ScriptMediator.java:475) 位于org.apache.synapse.mediators.bsf.ScriptMediator.initInlineScript(ScriptMediator.java:341) 位于org.apache.synapse.mediators.bsf.ScriptMediator(ScriptMediator.java:146) 位于org.apache.synapse.mediators.bsf.ScriptMediatorFactory.createSpecificMediator(ScriptMediatorFactory.java:105) 位于org.apache.synapse.config.xml.AbstractMediatorFactory.createMediator(AbstractMediatorFactory.java:91) 位于org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:223) 位于org.apache.synapse.config.xml.AbstractListMediatorFactory.addChildren(AbstractListMediatorFactory.java:41) 位于org.apache.synapse.config.xml.SequenceMediatorFactory.createSpecificMediator(SequenceMediatorFactory.java:87) 位于org.apache.synapse.config.xml.AbstractMediatorFactory.createMediator(AbstractMediatorFactory.java:91) 位于org.wso2.carbon.mediation.configadmin.ConfigurationValidator.validateSequence(ConfigurationValidator.java:90) 位于org.wso2.carbon.mediation.configadmin.ConfigurationValidator.validate(ConfigurationValidator.java:73) 位于org.wso2.carbon.mediation.configadmin.configadmin.validateConfiguration(configadmin.java:180) …还有61个 原因:java.lang.ClassNotFoundException:com.sun.phobos.script.javascript.RhinoScriptEngineFactory 位于org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501) 位于org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421) 位于org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412) atorg.eclipse.osgi.internal.baseAdapter.DefaultClassLoader.loadClass(DefaultClassLoa。。 位于java.lang.ClassLoader.loadClass(ClassLoader.java:248) …73更多“


我查阅了你给其他人的同一问题的解决方案,但没有效果。我在谷歌搜索了很长一段时间,有人说错误已经解决,或者OSGI框架在安装时出现了问题,但其他人也有同样的问题,我仍然坚持,所以请给我们一个完整的答案关于如何在WSO2 AM 1.5中使用脚本中介的解决方案,tks很多!

我们用于提供脚本引擎的bsf jar存在一个问题。作为一种替代方法,您可以使用enrich/payload factory mediator来完成上述任务。

您是否尝试在AM中解决该问题?这是否在您的工作计划中?我尝试使用WSO2 ESB 4.8.1。脚本中介可以成功添加,因此导致错误的原因必须隐藏在ESB和AM之间的差异中。tks,请查看一下,希望尽快看到您的答案。是的,我们将在即将发布的版本中解决此问题,我想问另一个问题?除了“mc.getPayloadXML”,如果我想从messagebody提取信息,可以使用什么。您可以使用xpath“$body”来访问消息正文sorg.apache.synapse.mediators.elementary.EnrichMediator是中介人对吗?而且xpath似乎只能处理xml消息,所以如果内容类型不是xml,我需要首先传输消息。请给我一个例子好吗?
"<sequence name="response">
    <script language="js">
        mc.setPayloadXML(
        &lt;greeting&gt;Hello World&lt;/greeting&gt;
        );
    </script>
    <header name="To" action="remove"/>
    <property name="messageType" value="application/json" scope="axis2"/>       
    <property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
    <property name="RESPONSE" value="true"/>
    <send/>
    <log level="full"/>
</sequence>"