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.

Reply via email to