Hi,
The interceptor should looks like:
public class ClientSoapFaultInterceptor extends
AbstractPhaseInterceptor<SoapMessage> {
public ClientSoapFaultInterceptor() {
super(Phase.PRE_LOGICAL);
}
@Override
public void handleMessage(SoapMessage message) throws Fault {
Exception e = message.getContent(Exception.class);
if (e != null) {
message.setContent(Exception.class, new
IllegalArgumentException("my test"));
}
}
}
Instead new IllegalArgumentException("my test") you can put your own exception.
Configuration of interceptor using spring will be the following:
<jaxws:client id="customerService"
serviceName="customer:CustomerServiceService"
endpointName="customer:CustomerServiceEndpoint"
address="http://localhost:9090/CustomerServicePort"
serviceClass="com.example.customerservice.CustomerService">
<jaxws:inFaultInterceptors>
<bean
class="com.example.customerservice.client.ClientSoapFaultInterceptor"/>
</jaxws:inFaultInterceptors>
</jaxws:client>
Regards,
Andrei.
> -----Original Message-----
> From: Al Eridani [mailto:[email protected]]
> Sent: Dienstag, 11. Februar 2014 18:50
> To: [email protected]
> Subject: Re: Automatic exception conversion?
>
> Thank you for your reply, Andrei.
> This is for JAX-WS. Do you have any pointers to documentation or examples
> about how do I write my own interceptor and how to I place it in the fault
> chain?
> Regards,
>
>
>
> On Mon, Feb 10, 2014 at 10:41 PM, Andrei Shakirin
> <[email protected]>wrote:
>
> > Hi,
> >
> > Do you speak about JAX-RS or JAX-WS service?
> > In former case it is possible to achieve that with Exception Mapper.
> > For JAX-WS you likely need to write own interceptor and put it into fault
> chain.
> >
> > Regards,
> > Andrei.
> >
> > > -----Original Message-----
> > > From: Al Eridani [mailto:[email protected]]
> > > Sent: Montag, 10. Februar 2014 19:49
> > > To: [email protected]
> > > Subject: Automatic exception conversion?
> > >
> > > Hello, all my web service methods follow the same pattern:
> > >
> > > public ... someMethod() throws MyWebServicesFault {
> > > try {
> > > ...
> > > } catch (Exception e) {
> > > throw new MyWebServicesFault(e);
> > > }
> > > }
> > >
> > > Is it possible to simplify them by eliminating the try/catch and
> > > somehow
> > tell the
> > > CXF framework to catch any exception thrown and to wrap it into my
> > > custom MyWebServicesFault?
> > >
> > > I'm using 2.6.2, if it matters.
> > >
> > > Thanks!
> >