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"

Reply via email to