You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Harikrishna Vemula <ha...@gmail.com> on 2008/12/15 15:36:22 UTC
Axis 1.3 - Problem with Handler
Hi,
I have a Webservice for that i implemented a Handler to validate
input request with XSD. Whenever any exception occurs in invoke method i'm
throwing AxisFault. But client doesn't want to have exception as return
value even though any exception occurs.
Client is expecting to recieve a normal SOAP response with ErrorCode &
ErrorMsg parameters in the response.
How can i send response with ErrorCode & ErrorMsg when any exception raised
in Handlers?
Please help me out, this is an urgent requirement.
Thanks in advance...
--
Hari Krishna Vemula
Re: Axis 1.3 - Problem with Handler
Posted by Harikrishna Vemula <ha...@gmail.com>.
Thanks guo...
can anybody help me out?
-Hari
On Tue, Dec 16, 2008 at 11:47 AM, Guo Tianchong <gu...@nec-as.nec.com.cn>wrote:
> hi, Hari
>
> I am working with Axis2 1.4.1 and don't know well about Axis 1.3.
> Sorry!
>
> but I also remain concerned about this issue.
>
> guo.
>
> ----- Original Message -----
> *From:* Harikrishna Vemula <ha...@gmail.com>
> *To:* axis-user@ws.apache.org
> *Sent:* Tuesday, December 16, 2008 2:05 PM
> *Subject:* Re: Axis 1.3 - Problem with Handler
>
> Hi guo,
> Thanks,
> But in Axis 1.3 we don't have InvocationResponse object itself. In 1.3
> invoke method return type is void. So, as per my knowledge only way to stop
> the process and send back the response by throwing Fault.
> But is there any other way by which we can catch Fault and process the
> fault message and send back normal response to client?
>
> JAX-RPC is having methods with return type true for handleRequest method,
> how to use JAXRPC handlers in axis? Any idea?
>
> Thanks in advance...
>
> -Hari
>
>
>
> On Tue, Dec 16, 2008 at 6:56 AM, Guo Tianchong <gu...@nec-as.nec.com.cn>wrote:
>
>> Hi,
>>
>> you can do something in the Handler's invoke() method
>> and encapsulate a new SOAP body in the MessageContext object.
>>
>> Using AXIOM, that looks like :
>>
>>
>> public InvocationResponse invoke(MessageContext msgContext) throws
>> AxisFault {
>>
>> SOAPFactory fac = OMAbstractFactory.getSOAP12Factory();
>> OMNamespace soapNamespace =
>> fac.createOMNamespace(Constants.URI_SOAP11_ENV, "soap");
>>
>> // make envelope element
>> SOAPEnvelope newEnvelope = fac.createSOAPEnvelope(soapNamespace);
>>
>> // make header element
>> SOAPHeader header = fac.createSOAPHeader(newEnvelope);
>> *// add your header blocks here*
>> ......
>>
>> // make body element
>> SOAPBody body = fac.createSOAPBody(newEnvelope);
>> *// add your body response here*
>> *// body.addChild(.....)*
>>
>> msgContext.setEnvelope(newEnvelope);
>>
>> return InvocationResponse.CONTINUE;
>>
>> }
>>
>>
>>
>> Please have a try.
>>
>> guo
>>
>>
>> ----- Original Message -----
>> *From:* Harikrishna Vemula <ha...@gmail.com>
>> *To:* axis-user@ws.apache.org
>> *Sent:* Monday, December 15, 2008 10:36 PM
>> *Subject:* Axis 1.3 - Problem with Handler
>>
>> Hi,
>> I have a Webservice for that i implemented a Handler to validate
>> input request with XSD. Whenever any exception occurs in invoke method i'm
>> throwing AxisFault. But client doesn't want to have exception as return
>> value even though any exception occurs.
>> Client is expecting to recieve a normal SOAP response with ErrorCode &
>> ErrorMsg parameters in the response.
>>
>> How can i send response with ErrorCode & ErrorMsg when any exception
>> raised in Handlers?
>>
>> Please help me out, this is an urgent requirement.
>> Thanks in advance...
>> --
>> Hari Krishna Vemula
>>
>>
>
>
> --
> Hari Krishna Vemula
>
>
--
Hari Krishna Vemula
Re: Axis 1.3 - Problem with Handler
Posted by Guo Tianchong <gu...@nec-as.nec.com.cn>.
hi, Hari
I am working with Axis2 1.4.1 and don't know well about Axis 1.3.
Sorry!
but I also remain concerned about this issue.
guo.
----- Original Message -----
From: Harikrishna Vemula
To: axis-user@ws.apache.org
Sent: Tuesday, December 16, 2008 2:05 PM
Subject: Re: Axis 1.3 - Problem with Handler
Hi guo,
Thanks,
But in Axis 1.3 we don't have InvocationResponse object itself. In 1.3 invoke method return type is void. So, as per my knowledge
only way to stop the process and send back the response by throwing Fault.
But is there any other way by which we can catch Fault and process the fault message and send back normal response to client?
JAX-RPC is having methods with return type true for handleRequest method, how to use JAXRPC handlers in axis? Any idea?
Thanks in advance...
-Hari
On Tue, Dec 16, 2008 at 6:56 AM, Guo Tianchong <gu...@nec-as.nec.com.cn> wrote:
Hi,
you can do something in the Handler's invoke() method
and encapsulate a new SOAP body in the MessageContext object.
Using AXIOM, that looks like :
public InvocationResponse invoke(MessageContext msgContext) throws AxisFault {
SOAPFactory fac = OMAbstractFactory.getSOAP12Factory();
OMNamespace soapNamespace = fac.createOMNamespace(Constants.URI_SOAP11_ENV, "soap");
// make envelope element
SOAPEnvelope newEnvelope = fac.createSOAPEnvelope(soapNamespace);
// make header element
SOAPHeader header = fac.createSOAPHeader(newEnvelope);
// add your header blocks here
......
// make body element
SOAPBody body = fac.createSOAPBody(newEnvelope);
// add your body response here
// body.addChild(.....)
msgContext.setEnvelope(newEnvelope);
return InvocationResponse.CONTINUE;
}
Please have a try.
guo
----- Original Message -----
From: Harikrishna Vemula
To: axis-user@ws.apache.org
Sent: Monday, December 15, 2008 10:36 PM
Subject: Axis 1.3 - Problem with Handler
Hi,
I have a Webservice for that i implemented a Handler to validate input request with XSD. Whenever any exception occurs in
invoke method i'm throwing AxisFault. But client doesn't want to have exception as return value even though any exception occurs.
Client is expecting to recieve a normal SOAP response with ErrorCode & ErrorMsg parameters in the response.
How can i send response with ErrorCode & ErrorMsg when any exception raised in Handlers?
Please help me out, this is an urgent requirement.
Thanks in advance...
--
Hari Krishna Vemula
--
Hari Krishna Vemula
Re: Axis 1.3 - Problem with Handler
Posted by Harikrishna Vemula <ha...@gmail.com>.
Hi guo,
Thanks,
But in Axis 1.3 we don't have InvocationResponse object itself. In 1.3
invoke method return type is void. So, as per my knowledge only way to stop
the process and send back the response by throwing Fault.
But is there any other way by which we can catch Fault and process the fault
message and send back normal response to client?
JAX-RPC is having methods with return type true for handleRequest method,
how to use JAXRPC handlers in axis? Any idea?
Thanks in advance...
-Hari
On Tue, Dec 16, 2008 at 6:56 AM, Guo Tianchong <gu...@nec-as.nec.com.cn>wrote:
> Hi,
>
> you can do something in the Handler's invoke() method
> and encapsulate a new SOAP body in the MessageContext object.
>
> Using AXIOM, that looks like :
>
>
> public InvocationResponse invoke(MessageContext msgContext) throws
> AxisFault {
>
> SOAPFactory fac = OMAbstractFactory.getSOAP12Factory();
> OMNamespace soapNamespace =
> fac.createOMNamespace(Constants.URI_SOAP11_ENV, "soap");
>
> // make envelope element
> SOAPEnvelope newEnvelope = fac.createSOAPEnvelope(soapNamespace);
>
> // make header element
> SOAPHeader header = fac.createSOAPHeader(newEnvelope);
> *// add your header blocks here*
> ......
>
> // make body element
> SOAPBody body = fac.createSOAPBody(newEnvelope);
> *// add your body response here*
> *// body.addChild(.....)*
>
> msgContext.setEnvelope(newEnvelope);
>
> return InvocationResponse.CONTINUE;
>
> }
>
>
>
> Please have a try.
>
> guo
>
>
> ----- Original Message -----
> *From:* Harikrishna Vemula <ha...@gmail.com>
> *To:* axis-user@ws.apache.org
> *Sent:* Monday, December 15, 2008 10:36 PM
> *Subject:* Axis 1.3 - Problem with Handler
>
> Hi,
> I have a Webservice for that i implemented a Handler to validate
> input request with XSD. Whenever any exception occurs in invoke method i'm
> throwing AxisFault. But client doesn't want to have exception as return
> value even though any exception occurs.
> Client is expecting to recieve a normal SOAP response with ErrorCode &
> ErrorMsg parameters in the response.
>
> How can i send response with ErrorCode & ErrorMsg when any exception raised
> in Handlers?
>
> Please help me out, this is an urgent requirement.
> Thanks in advance...
> --
> Hari Krishna Vemula
>
>
--
Hari Krishna Vemula
Re: Axis 1.3 - Problem with Handler
Posted by Guo Tianchong <gu...@nec-as.nec.com.cn>.
Hi,
you can do something in the Handler's invoke() method
and encapsulate a new SOAP body in the MessageContext object.
Using AXIOM, that looks like :
public InvocationResponse invoke(MessageContext msgContext) throws AxisFault {
SOAPFactory fac = OMAbstractFactory.getSOAP12Factory();
OMNamespace soapNamespace = fac.createOMNamespace(Constants.URI_SOAP11_ENV, "soap");
// make envelope element
SOAPEnvelope newEnvelope = fac.createSOAPEnvelope(soapNamespace);
// make header element
SOAPHeader header = fac.createSOAPHeader(newEnvelope);
// add your header blocks here
......
// make body element
SOAPBody body = fac.createSOAPBody(newEnvelope);
// add your body response here
// body.addChild(.....)
msgContext.setEnvelope(newEnvelope);
return InvocationResponse.CONTINUE;
}
Please have a try.
guo
----- Original Message -----
From: Harikrishna Vemula
To: axis-user@ws.apache.org
Sent: Monday, December 15, 2008 10:36 PM
Subject: Axis 1.3 - Problem with Handler
Hi,
I have a Webservice for that i implemented a Handler to validate input request with XSD. Whenever any exception occurs in
invoke method i'm throwing AxisFault. But client doesn't want to have exception as return value even though any exception occurs.
Client is expecting to recieve a normal SOAP response with ErrorCode & ErrorMsg parameters in the response.
How can i send response with ErrorCode & ErrorMsg when any exception raised in Handlers?
Please help me out, this is an urgent requirement.
Thanks in advance...
--
Hari Krishna Vemula