Hi elimatha,
If this is blocker to you, Have you try to use custom class mediator to
perform above job?

Best regards,
vanji

On Tue, Dec 16, 2014 at 2:03 PM, Elilmatha Sivanesan <[email protected]>
wrote:
>
>
> Hi all,
> I need to convert the json string like the following {"name":
> {"is":"john"}} to {\"name\": {\"is\":\"john\"}}
>
> I wrote the javascript as follows which works well on the online java
> script editor. The script
> <!DOCTYPE html>
> <html>
> <body>
> <h2>Create Object from JSON String</h2>
> <p id="demo"></p>
> <script>
> var p ='{"name": {"is":"john"}}';
> var x = p.replace(/\"/g,'\\"');
> document.write(x);
> </script>
> </body>
> </html>
>
> So I wrote the script in the synapse configuration as below.
>  <script language="js"><![CDATA[
>         var q = mc.getProperty('uri.var.query1');
>                 <!--var o = JSON.stringify(q);-->
>                 var qReplacedString = q.replace(/\"/g,'\\"');
>                 mc.setProperty('uri.var.query1',qReplacedString);
>         ]]>
>     </script>
>
> But it gives me the following errors. Is there any issues on using /\"/ 
> character
> ,What would be the problem on this.
>
> ERROR - ScriptMediator The script engine returned an error executing the
> inlined js script function mediate
> [2014-12-16 13:50:45,113]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>  com.sun.phobos.script.util.ExtendedScriptException:
> org.mozilla.javascript.EvaluatorException: The choice of Java constructor
> replace matching JavaScript argument types (function,string) is ambiguous;
> candidate constructors are:
> [2014-12-16 13:50:45,113]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>  class java.lang.String
> replace(java.lang.CharSequence,java.lang.CharSequence)
> [2014-12-16 13:50:45,113]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>  class java.lang.String replace(char,char) (<Unknown Source>#4) in <Unknown
> Source> at line number 4
> [2014-12-16 13:50:45,113]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> com.sun.phobos.script.javascript.RhinoCompiledScript.eval(RhinoCompiledScript.java:68)
> [2014-12-16 13:50:45,113]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at javax.script.CompiledScript.eval(CompiledScript.java:92)
> [2014-12-16 13:50:45,113]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.apache.synapse.mediators.bsf.ScriptMediator.mediateForInlineScript(ScriptMediator.java:291)
> [2014-12-16 13:50:45,113]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.apache.synapse.mediators.bsf.ScriptMediator.invokeScript(ScriptMediator.java:235)
> [2014-12-16 13:50:45,114]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.apache.synapse.mediators.bsf.ScriptMediator.mediate(ScriptMediator.java:203)
> [2014-12-16 13:50:45,114]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77)
> [2014-12-16 13:50:45,114]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47)
> [2014-12-16 13:50:45,114]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.apache.synapse.mediators.template.TemplateMediator.mediate(TemplateMediator.java:77)
> [2014-12-16 13:50:45,114]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:129)
> [2014-12-16 13:50:45,114]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:78)
> [2014-12-16 13:50:45,114]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77)
> [2014-12-16 13:50:45,114]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:255)
> [2014-12-16 13:50:45,115]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:556)
> [2014-12-16 13:50:45,115]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:198)
> [2014-12-16 13:50:45,115]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:488)
> [2014-12-16 13:50:45,115]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170)
> [2014-12-16 13:50:45,115]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
> [2014-12-16 13:50:45,115]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:225)
> [2014-12-16 13:50:45,115]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
> [2014-12-16 13:50:45,116]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> [2014-12-16 13:50:45,116]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> [2014-12-16 13:50:45,116]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at java.lang.Thread.run(Thread.java:722)
> [2014-12-16 13:50:45,116]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>  Caused by: org.mozilla.javascript.EvaluatorException: The choice of Java
> constructor replace matching JavaScript argument types (function,string) is
> ambiguous; candidate constructors are:
> [2014-12-16 13:50:45,116]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>  class java.lang.String
> replace(java.lang.CharSequence,java.lang.CharSequence)
> [2014-12-16 13:50:45,116]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>  class java.lang.String replace(char,char) (<Unknown Source>#4)
> [2014-12-16 13:50:45,116]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.mozilla.javascript.DefaultErrorReporter.runtimeError(DefaultErrorReporter.java:109)
> [2014-12-16 13:50:45,117]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at org.mozilla.javascript.Context.reportRuntimeError(Context.java:1030)
> [2014-12-16 13:50:45,117]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at org.mozilla.javascript.Context.reportRuntimeError(Context.java:1086)
> [2014-12-16 13:50:45,117]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.mozilla.javascript.Context.reportRuntimeError3(Context.java:1064)
> [2014-12-16 13:50:45,117]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.mozilla.javascript.NativeJavaMethod.findFunction(NativeJavaMethod.java:442)
> [2014-12-16 13:50:45,117]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:157)
> [2014-12-16 13:50:45,117]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
> [2014-12-16 13:50:45,117]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at org.mozilla.javascript.gen.c20._c0(<Unknown Source>:4)
> [2014-12-16 13:50:45,118]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at org.mozilla.javascript.gen.c20.call(<Unknown Source>)
> [2014-12-16 13:50:45,118]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:393)
> [2014-12-16 13:50:45,118]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2834)
> [2014-12-16 13:50:45,118]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at org.mozilla.javascript.gen.c20.call(<Unknown Source>)
> [2014-12-16 13:50:45,118]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at org.mozilla.javascript.gen.c20.exec(<Unknown Source>)
> [2014-12-16 13:50:45,118]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      at
> com.sun.phobos.script.javascript.RhinoCompiledScript.eval(RhinoCompiledScript.java:55)
> [2014-12-16 13:50:45,118]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>      ... 21 more
> [2014-12-16 13:50:45,119]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>  [2014-12-16 13:50:45,114] ERROR - SynapseCallbackReceiver Synapse
> encountered an exception, No error handlers found - [Message Dropped]
> [2014-12-16 13:50:45,119]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -  The
> script engine returned an error executing the inlined js script function
> mediate
> [2014-12-16 13:51:44,632]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>  [2014-12-16 13:51:44,631]  WARN - SourceHandler Connection time out after
> request is read: http-incoming-2
> [2014-12-16 13:51:44,652]  INFO
> {org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
>  [2014-12-16 13:51:44,652]  INFO - DeploymentInterceptor Removing Axis2
> Service: createSavedSearch {super-tenant}
>
> But the replace function works well in normal strings. eg
>  <script language="js"><![CDATA[
>         var q = mc.getProperty('uri.var.query1');
>                 <!--var o = JSON.stringify(q);-->
>                 var qReplacedString = q.replace("name","hi");
>                 mc.setProperty('uri.var.query1',qReplacedString);
>         ]]>
>     </script>
>
> Thank You.
> --
> *S.Elilmatha*
> Associate  Software Engineer,
>
> WSO2 Inc.; http://wso2.com
> lean.enterprise.middleware
>
> Mobile 0779842221.
>
>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>

-- 
Sivajothy Vanjikumaran
*Senior Software Engineer*
*Integration Technologies Team*
*WSO2 Inc. http://wso2.com <http://wso2.com/>*
*Mobile:(+94)777219209*
[image: Facebook] <https://www.facebook.com/vanjikumaran> [image: Twitter]
<https://twitter.com/vanjikumaran> [image: LinkedIn]
<http://www.linkedin.com/pub/vanjikumaran-sivajothy/25/b31/293> [image:
Blogger] <http://vanjikumaran.blogspot.com/> [image: SlideShare]
<http://www.slideshare.net/vanjikumaran>

This communication may contain privileged or other confidential information
and is intended exclusively for the addressee/s. If you are not the
intended recipient/s, or believe that you may have received this
communication in error, please reply to the sender indicating that fact and
delete the copy you received and in addition, you should not print,
copy, re-transmit, disseminate, or otherwise use the information contained
in this communication. Internet communications cannot be guaranteed to be
timely, secure, error or virus-free. The sender does not accept liability
for any errors or omissions
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to