Hi Sergey
I am just throwing a WebApplicationException in my inbound interceptor. See
below how exactly is my code.
-----------------------------------------------------------------
import javax.ws.rs.WebApplicationException;
public class MyLoginInInterceptor extends AbstractPhaseInterceptor<Message>
{
public MyLoginInInterceptor() {
super(Phase.PRE_LOGICAL);
}
public void handleMessage(Message message) throws Fault {
//other code
throw new WebApplicationException();
}
}
-----------------------------------------------------------------
import javax.ws.rs.ext.ExceptionMapper;
public class MyExceptionMapper implements
ExceptionMapper<WebApplicationException>{
@Override
public Response toResponse(WebApplicationException exception) {
Response response = Response
.status(Status.INTERNAL_SERVER_ERROR)
.type(MediaType.APPLICATION_JSON)
.entity("{\"message\":\"Please contact
system administrators.\"}").build();
return response;
}
}
-----------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<beans>
<import resource="classpath:META-INF/cxf/cxf.xml" />
<bean class="com.ba.oasis.interceptors.MyLoginInInterceptor"
id="MyLoginInInterceptor"/>
<bean class="com.ba.oasis.interceptors.MyLoginOutInterceptor"
id="MyLoginOutInterceptor"/>
<cxf:bus>
<cxf:inInterceptors>
<ref bean="MyLoginInInterceptor" />
</cxf:inInterceptors>
<cxf:outInterceptors>
<ref bean="MyLoginOutInterceptor" />
</cxf:outInterceptors>
</cxf:bus>
<jaxrs:server address="/" id="services">
<jaxrs:providers>
<bean
class="com.ba.oasis.exceptions.MyExceptionMapper"/>
<bean
class="org.apache.cxf.jaxrs.ext.search.SearchContextProvider" />
<bean class="com.ba.oasis.utils.MyJAXBProvider" />
<bean class="com.ba.oasis.utils.MyJSONProvider"
id="JsonpProvider">
<property name="ignoreNamespaces" value="true"
/>
<property name="dropRootElement" value="false"
/>
<property name="supportUnwrapped" value="true"
/>
</bean>
</jaxrs:providers>
<jaxrs:serviceBeans>
<bean
class="com.ba.oasis.resources.HpsimManagedObjectsResource" />
</jaxrs:serviceBeans>
<jaxrs:extensionMappings>
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
<entry key="jsonp" value="application/javascript" />
</jaxrs:extensionMappings>
<jaxrs:features>
<cxf:logging />
</jaxrs:features>
<jaxrs:properties>
<entry key="ignore.matrix.parameters" value="true" />
<entry key="search.lax.property.match" value="true" />
</jaxrs:properties>
</jaxrs:server>
</beans>
To be honest I didn't understand what you mean by
"if you throw a custom WebApplicationException with Response containing
some text then the mappers will be ignored by default - do you do it in
your code ?"
That's why I am listing my code.
Do you see any problem in my configuration?
--
View this message in context:
http://cxf.547215.n5.nabble.com/Custom-Response-from-handleFault-JAX-RS-tp5738651p5738914.html
Sent from the cxf-user mailing list archive at Nabble.com.