2016-08-23 13 views
2

私はseq(WSO2ESb 4.9)を呼び出してRESTを呼び出し、JSONを受け取ります。それから私は、スクリプトメディエーター(JS)を介してXMLをJSONをマッピング、ここに私の設定です:WSO2ESB jsスクリプトメディエーターのエラーが大きいペイロード

<case regex="urn:mta:navigation:getMarshes"> 
       <property xmlns:ns="http://ws.apache.org/ns/synapse" name="uri.var.service" 
        value="getMarshes" scope="default" type="STRING" /> 
       <call> 
        <endpoint key="adapter.navigation.asu.GetData.Endpoint" /> 
       </call> 
       <script language="js"><![CDATA[ 
          var array = mc.getPayloadJSON(); 
          var payload = <getMarshesRS/>;  

          for (i = 0; i < array.length; ++i) { 
           var elem = array[i]; 
           payload.Marshes += <marsh id={elem.mr_id} num={elem.mr_num} title={elem.mr_title} note={elem.mr_note} mt_id={elem.mrt_id} /> 
          } 
          mc.setPayloadXML(payload); 
       ]]></script> 
</case> 

私はRESTサービス(例えば10)から多くのオブジェクトがない受け取った場合、それが正常に動作します。しかし、1280個のオブジェクトを受け取った場合、例外があります

[2016-08-23 16:31:35,799] ERROR - Uncaught exception {org.apache.axis2.transport.base.threads.NativeWorkerPool} java.lang.ClassFormatError: Invalid method Code length 186472 in class file org/mozilla/javascript/gen/c187 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at org.mozilla.javascript.DefiningClassLoader.defineClass(DefiningClassLoader.java:62) at org.mozilla.javascript.optimizer.Codegen.defineClass(Codegen.java:126) at org.mozilla.javascript.optimizer.Codegen.createScriptObject(Codegen.java:81) at org.mozilla.javascript.Context.compileImpl(Context.java:2361) at org.mozilla.javascript.Context.compileReader(Context.java:1310) at org.mozilla.javascript.Context.compileReader(Context.java:1282) at org.mozilla.javascript.Context.evaluateReader(Context.java:1224) at com.sun.phobos.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:172) at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249) at org.apache.synapse.mediators.bsf.ScriptMediator.processJSONPayload(ScriptMediator.java:322) at org.apache.synapse.mediators.bsf.ScriptMediator.mediateForInlineScript(ScriptMediator.java:294) at org.apache.synapse.mediators.bsf.ScriptMediator.invokeScript(ScriptMediator.java:239) at org.apache.synapse.mediators.bsf.ScriptMediator.mediate(ScriptMediator.java:207) at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81) at org.apache.synapse.mediators.filters.SwitchMediator.mediate(SwitchMediator.java:178) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:267) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:679) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:244) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:529) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:172) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:247) at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

バグですか?

答えて

1

スクリプトメディエータで大きなペイロードを処理できないバグがあります。これは、Rhino Engineの下線から来ています。以下はJIRAです。しかし、あなたのスタックトレースは多少異なります。

https://wso2.org/jira/browse/ESBJAVA-4834

関連する問題