synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ruwan Linton" <ruwan.lin...@gmail.com>
Subject Re: How to send back a fault from an in-sequence
Date Fri, 23 May 2008 14:59:03 GMT
Hi Eric,

OK, I agreed. Your views on synapse sounds interesting and I really
appreciate your support in improving the product.

Please try the sample may be with some changes to the script or the
configuration. If you can reproduce the issue consistently, then go ahead
and file a JIRA against the Script mediator. (Please note that Script
mediator will not work with JDK-1.6 and hire). I will try my best to resolve
the issue if there are any :-)

Thanks,
Ruwan

On Fri, May 23, 2008 at 4:30 PM, Hubert, Eric <eric.hubert@jamba.net> wrote:

>   Hi Ruwan,
>
>
>
> this is only a missunderstanding. Of course we will try to go the way you
> suggested. There is no special requirement to use the script mediator here.
> It was just that if we had discovered a bug, it would make sense to try to
> fix it as well. No matter if we need this feature or not. Just to improve
> synapse. I'm always interested to fix problems no matter if we or other
> users might be affected.
>
>
>
> Regards,
>
>    Eric
>
>
>   ------------------------------
>
> *From:* Ruwan Linton [mailto:ruwan.linton@gmail.com]
> *Sent:* Friday, May 23, 2008 12:36 PM
>
> *To:* dev@synapse.apache.org
> *Subject:* Re: How to send back a fault from an in-sequence
>
>
>
> Eric,
>
> I still don't understand why do you need a script to do this. Is there any
> other requirements except for sending a hessian fault back?
>
> If not I would strongly suggest you to go with the existing mediators and
> if there are any issues lets find them out and fix them.
>
> Thanks,
> Ruwan
>
> On Fri, May 23, 2008 at 3:40 PM, Hubert, Eric <eric.hubert@jamba.net>
> wrote:
>
> Hi Ruwan,
>
>
>
> Thanks for your cross test! No, we didn't change any of the libraries. If I
> find the time, I'll try the sample on my own and contact the developer to
> find out more about his testing environment. I guess he was testing locally.
> So maybe he uses another Java-Version or something like that. If the problem
> does not happen in the integration environment we may try to narrow it down.
>
>
>
> Regards,
>
>    Eric
>
>
>   ------------------------------
>
> *From:* Ruwan Linton [mailto:ruwan.linton@gmail.com]
> *Sent:* Friday, May 23, 2008 11:15 AM
> *To:* dev@synapse.apache.org
> *Subject:* Re: How to send back a fault from an in-sequence
>
>
>
> 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 <eric.hubert@jamba.net>
> 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 <ruwan.linton@gmail.com>
> wrote:
>
> Hi Eric,
>
> Please see my comments in line;
>
> On Thu, May 22, 2008 at 8:53 PM, Hubert, Eric <eric.hubert@jamba.net>
> 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"
>
>
>
>
> --
> Ruwan Linton
> http://www.wso2.org - "Oxygenating the Web Services Platform"
>



-- 
Ruwan Linton
http://www.wso2.org - "Oxygenating the Web Services Platform"

Mime
View raw message