Hi

Policy engine 'affects' all the endpoints so I guess when a request for the
JAXRS service arrives a PolicyInInterceptor gets some null object which
would otherwise be initialized. What CXF version you're using ? I'll check
the '132' line and see if I can fix it

cheers, Sergey

On Fri, Apr 23, 2010 at 12:28 PM, Daniel Putra <[email protected]> wrote:

>  Hi
>
> I have multiple third party web services (I connect to a third party web
> service) and a server RESTfull web service (web service clients connect to
> me) in a Spring application.
>
> One third party web service is only working if a policy engine is specified
> like
>
>    <bean id="org.apache.cxf.ws.policy.PolicyEngine"
> class="org.apache.cxf.ws.policy.PolicyEngineImpl">
>       <property name="bus" ref="cxf"/>
>       <property name="enabled" value="true"/>
>    </bean>
> as it otherwise throws the following exception:
>
> java.lang.NullPointerException
>  at
> org.apache.cxf.ws.policy.WSPolicyFeature.initialize(WSPolicyFeature.java:100)
>  at
> org.apache.cxf.ws.policy.WSPolicyFeature.initializeEndpointPolicy(WSPolicyFeature.java:139)
>  at
> org.apache.cxf.ws.policy.WSPolicyFeature.initialize(WSPolicyFeature.java:112)
>  at
> org.apache.cxf.frontend.ClientFactoryBean.applyFeatures(ClientFactoryBean.java:71)
>  at
> org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:60)
>  at
> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:102)
>  at
> org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:115)
>
> But as soon as I add the PolicyEngine bean into the xml my RESTful web
> service does not work any longer. It throws the following null pointer
> exception:
>
> 2010-04-23 13:08:40,758 WARN [org.apache.cxf.phase.PhaseInterceptorChain] -
> Interceptor for 
> {http://party.misc.profidaweb/}PartyServiceRest<http://party.misc.profidaweb/%7DPartyServiceRest>has
>  thrown exception, unwinding now
> java.lang.NullPointerException
>  at
> org.apache.cxf.ws.policy.PolicyInInterceptor.handle(PolicyInInterceptor.java:132)
>  at
> org.apache.cxf.ws.policy.AbstractPolicyInterceptor.handleMessage(AbstractPolicyInterceptor.java:45)
>  at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>  at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:110)
>  at
> org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:98)
>  at
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:423)
>  at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:139)
>  at
> org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:142)
>  at
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)
>  at
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:108)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>
> I attach my configuration file for the RESTfull web service. The client web
> services are defined in java like:
>
>             Map<String, Object> outProps = new HashMap<String, Object>();
>             outProps.put(WSHandlerConstants.ACTION,
> WSHandlerConstants.TIMESTAMP + " " + WSHandlerConstants.USERNAME_TOKEN);
>             outProps.put(WSHandlerConstants.USER, userPerson.fseLoginType()
> + "\\" + userPerson.getFSELoginName());
>             outProps.put(WSHandlerConstants.PASSWORD_TYPE,
> WSConstants.PW_TEXT);
>             outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS,
> PasswordCallbackHandler.class.getName());
>             WSS4JOutInterceptor wss4jOut = new
> WSS4JOutInterceptor(outProps);
>
>             JaxWsProxyFactoryBean wsFactory = new JaxWsProxyFactoryBean();
>             wsFactory.getOutInterceptors().add(wss4jOut);
>             wsFactory.setServiceClass(FseWebService_DEF.class);
>             wsFactory.setAddress(url);
>             wsFactory.getFeatures().add(new WSPolicyFeature());
>
>             FseWebService_DEF fseWebService =
> (FseWebService_DEF)wsFactory.create();
>
> Please help, how can I either change the client or the RESTfull web service
> declaration to avoid the null pointer exception and have both working next
> to each other?
>
> Best regards
> Daniel Putra
>

Reply via email to