Return-Path: Delivered-To: apmail-synapse-dev-archive@www.apache.org Received: (qmail 16194 invoked from network); 23 May 2008 14:59:35 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 23 May 2008 14:59:35 -0000 Received: (qmail 3859 invoked by uid 500); 23 May 2008 14:59:36 -0000 Delivered-To: apmail-synapse-dev-archive@synapse.apache.org Received: (qmail 3826 invoked by uid 500); 23 May 2008 14:59:36 -0000 Mailing-List: contact dev-help@synapse.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@synapse.apache.org Delivered-To: mailing list dev@synapse.apache.org Received: (qmail 3815 invoked by uid 99); 23 May 2008 14:59:36 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 23 May 2008 07:59:36 -0700 X-ASF-Spam-Status: No, hits=2.0 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of ruwan.linton@gmail.com designates 72.14.252.152 as permitted sender) Received: from [72.14.252.152] (HELO po-out-1718.google.com) (72.14.252.152) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 23 May 2008 14:58:48 +0000 Received: by po-out-1718.google.com with SMTP id c31so1973701poi.1 for ; Fri, 23 May 2008 07:59:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; bh=LoYyINFo3SnHyX8BpAa74f+HNro4kx9zgN30hxhRJMw=; b=IhVBvbOzMjTrmq/COg6IjyAW9sgAYRoY23sJelmvJZvNJAJ5xYEwcN9r9R8Gnc70d8LUBajBihHjpXupzc+8g3sbz9SDnb2GnigFau9d7gubXEWvZrOnSOoaJsD5xLcCIsgO3ESVuPw2MiGIFHqjcN7k6XfEguxaunWSNM/TLCk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=eEfYDHgKcWkL2y30L2TVj8dRyMs8D23RXFMqnMM1JyKrx64i+if2qD9WOIkW+7xvw72ju3mfY/GnUib8vOOOuDNgFYXJko7eiri6QtxjoBSCi8IqMcF26R5Ew66O+4CDN7zDroBdjZM3ryasPLnQ2/pYKOox+oDDawqiYdPjZzg= Received: by 10.110.26.20 with SMTP id 20mr192919tiz.20.1211554743889; Fri, 23 May 2008 07:59:03 -0700 (PDT) Received: by 10.110.32.8 with HTTP; Fri, 23 May 2008 07:59:03 -0700 (PDT) Message-ID: <672a01200805230759r32b8f756i4524c56f12b78939@mail.gmail.com> Date: Fri, 23 May 2008 20:29:03 +0530 From: "Ruwan Linton" To: dev@synapse.apache.org Subject: Re: How to send back a fault from an in-sequence In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_2802_14827532.1211554743880" References: <672a01200805220851v5629ce76w42fc594daf494b0d@mail.gmail.com> <672a01200805220856s22b4090et6b2327201c3aedbf@mail.gmail.com> <672a01200805230214y4381156eked95f64a2c83931d@mail.gmail.com> <672a01200805230336x1e3c1029p53578d6fef41c445@mail.gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_2802_14827532.1211554743880 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline 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 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 > 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 > 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) ( Source>#2)in: 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) ( 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(:2) > > at org.mozilla.javascript.gen.c3.call() > > 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() > > at org.mozilla.javascript.gen.c3.exec() > > 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 > wrote: > > Hi Eric, > > Please see my comments in line; > > On Thu, May 22, 2008 at 8:53 PM, Hubert, Eric > 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 5then 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" ------=_Part_2802_14827532.1211554743880 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline 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 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" ------=_Part_2802_14827532.1211554743880--