Hi Eric, I just tried the sample 352 and was working fine for me. May be this is a scripting problem.
Are you using some other scripting jar than what we ship with Synapse/ESB? Thanks, Ruwan On Fri, May 23, 2008 at 1:43 PM, Hubert, Eric <[EMAIL PROTECTED]> wrote: > Hi Ruwan, > > > > It seems to me as we have been on the right track on this. We will check to > use this way, which looks more or less like we tried to achieve using the > scripting approach. We followed synapse example 352, but there we always > received an exception. I'll go and grep it. Yes, here it is: > > > > 2008-05-23 10:41:04,358 [127.0.0.1-berjbolle-lx1] [I/O dispatcher 5] INFO > PipeImpl Using native OS Pipes for event-driven to stream IO bridging > > 2008-05-23 10:41:04,451 [127.0.0.1-berjbolle-lx1] [HttpServerWorker-1] > ERROR ScriptMediator The script engine returned an error executing the > inlined js script function mediate > > com.sun.phobos.script.util.ExtendedScriptException: > org.mozilla.javascript.EvaluatorException: The choice of Java constructor > setTo matching JavaScript argument types (null) is ambiguous; candidate > constructors are: > > void setTo(java.lang.String) > > void setTo(org.apache.axis2.addressing.EndpointReference) (<Unknown > Source>#2)in: <Unknown Source>at line no: 2 > > at > com.sun.phobos.script.javascript.RhinoCompiledScript.eval(RhinoCompiledScript.java:68) > > at javax.script.CompiledScript.eval(CompiledScript.java:64) > > at > org.apache.synapse.mediators.bsf.ScriptMediator.mediateForInlineScript(ScriptMediator.java:248) > > at > org.apache.synapse.mediators.bsf.ScriptMediator.invokeScript(ScriptMediator.java:195) > > at > org.apache.synapse.mediators.bsf.ScriptMediator.mediate(ScriptMediator.java:168) > > at > org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:58) > > at > org.apache.synapse.mediators.filters.InMediator.mediate(InMediator.java:60) > > at > org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:58) > > at > org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:125) > > at > org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:176) > > at > org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:89) > > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176) > > at > org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275) > > at > org.apache.synapse.transport.nhttp.ServerWorker.processPost(ServerWorker.java:238) > > at > org.apache.synapse.transport.nhttp.ServerWorker.run(ServerWorker.java:194) > > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) > > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) > > at java.lang.Thread.run(Thread.java:595) > > Caused by: org.mozilla.javascript.EvaluatorException: The choice of Java > constructor setTo matching JavaScript argument types (null) is ambiguous; > candidate constructors are: > > void setTo(java.lang.String) > > void setTo(org.apache.axis2.addressing.EndpointReference) (<Unknown > Source>#2) > > at > org.mozilla.javascript.DefaultErrorReporter.runtimeError(DefaultErrorReporter.java:98) > > at > org.mozilla.javascript.Context.reportRuntimeError(Context.java:966) > > at > org.mozilla.javascript.Context.reportRuntimeError(Context.java:1022) > > at > org.mozilla.javascript.Context.reportRuntimeError3(Context.java:1000) > > at > org.mozilla.javascript.NativeJavaMethod.findFunction(NativeJavaMethod.java:385) > > at > org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:156) > > at > org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66) > > at org.mozilla.javascript.gen.c3._c0(<Unknown Source>:2) > > at org.mozilla.javascript.gen.c3.call(<Unknown Source>) > > at > org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:340) > > at > org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2758) > > at org.mozilla.javascript.gen.c3.call(<Unknown Source>) > > at org.mozilla.javascript.gen.c3.exec(<Unknown Source>) > > at > com.sun.phobos.script.javascript.RhinoCompiledScript.eval(RhinoCompiledScript.java:55) > > ... 17 more > > > > So while looking at this stack it seems as if the replyTo would be null. > Maybe this is only some scripting problem. Could someone please check the > example. If it is also not working for someone else, we should file a JIRA. > Or can this not work from within the main-sequence for some reason? > Basically it is the same as your decribed mediator sequence but with > scripting, or am I wrong? > > > > > > Regards, > > Eric > > > ------------------------------ > > Small modification; > > On Thu, May 22, 2008 at 9:21 PM, Ruwan Linton <[EMAIL PROTECTED]> > wrote: > > Hi Eric, > > Please see my comments in line; > > On Thu, May 22, 2008 at 8:53 PM, Hubert, Eric <[EMAIL PROTECTED]> > wrote: > > Hi, > > how can we send back a fault from an in-sequence? Regarding the Hessian > support, is there a way to generate a Hessian fault? > > > If the incoming message is a hessian message and if you > > - create a SOAP fault, > - set the RESPONSE=true property and > - copy the ReplyTo as To > > I forgot to mention that you will obviously need to send as well to send > back the generated response, > > So the set of mediators required are [makefault, property, header, send] > > Thanks, > Ruwan > > > - > > as described in the Sample > 5<http://synapse.apache.org/Synapse_Samples.html#Sample5>then you will be > able to send back a hessian fault. > > > > Background: > 1) In a switch mediator within the in-sequence we want to send back a > fault for the default case and log this. > > > Can be easily done as described above. > > > > > 2) If the requested URL does not match with any proxy service > definitions, Synapse sends back a 202 response to the client. If we got > it right synapse always uses the main-sequence if no other sequence > matches. So also for this case we would like to send back a fault from > within the in-sequence of the main-sequence. > > > A minor correction to this at first, if the message is not dispatched to > any of the proxy services on Synapse then the message will be directed to > the main sequence of synapse. (synapse dose not match over any other > sequences but just the proxy services for incoming messages) > > If you just have proxy services (service mediation only) and no message > mediation (messages coming into main sequence), then you can assume a > message reaching the main sequence as a fault message and send back a fault, > using the same strategy as described above inside the main sequence. > -- Ruwan Linton http://www.wso2.org - "Oxygenating the Web Services Platform"
