You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by ryluis <ry...@gmail.com> on 2011/11/02 04:40:25 UTC

Null Pointer on CXFNonSpringServlet

hi guys,

i have just change to cxf 2.4.3, and created a simple rest web service,
integrated with spring.

but stuck with this exception : 

java.lang.NullPointerException
	at
org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:60)


i confused with this error, since i never create any class that use/extend
CXFNonSpringServlet.

last time i was using cxf 2.2.8, and never meet this error.

please kindly advise.

===================

here is my :

*web.xml*

<web-app id="SDPFlexiRESTService_ID">
	<display-name>SDPFlexiRESTService</display-name>

	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext.xml</param-value>
	</context-param>

	<listener>
	
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<servlet>
		<servlet-name>CXFServlet</servlet-name>
		<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>CXFServlet</servlet-name>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>
</web-app>


*cxf.xml*

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:jaxrs="http://cxf.apache.org/jaxrs"
xmlns:jaxws="http://cxf.apache.org/jaxws"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
 				http://www.springframework.org/schema/beans/spring-beans.xsd
 				http://cxf.apache.org/jaxrs
 				http://cxf.apache.org/schemas/jaxrs.xsd
 				http://cxf.apache.org/jaxws
				http://cxf.apache.org/schemas/jaxws.xsd">

	<import resource="classpath:META-INF/cxf/cxf.xml" />
	
	
	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
	<import resource="classpath:applicationContext.xml" />


	
	<jaxrs:server id="smsService" address="/">
		<jaxrs:serviceBeans>
			<ref bean="smsServiceBean" />
		</jaxrs:serviceBeans>

		<jaxrs:providers>
			<ref bean="jaxbProviderSoap" />
		</jaxrs:providers>

		<jaxrs:extensionMappings>
			<entry key="json" value="application/json" />
			<entry key="xml" value="application/xml" />
		</jaxrs:extensionMappings>
	</jaxrs:server>
</beans>

*applicationContext.xml*

<beans>
	
	<bean id="logInbound"
class="org.apache.cxf.interceptor.LoggingInInterceptor" />
	<bean id="logOutbound"
class="org.apache.cxf.interceptor.LoggingOutInterceptor" />

	<bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl">
		<property name="inInterceptors">
			<list>
				<ref bean="logInbound" />
			</list>
		</property>
		<property name="outInterceptors">
			<list>
				<ref bean="logOutbound" />
			</list>
		</property>
		<property name="outFaultInterceptors">
			<list>
				<ref bean="logOutbound" />
			</list>
		</property>
	</bean>

	
	<bean id="sessionManagerClientBean"
class="com.lintasteknologi.client.session.SessionManagerClient" />

	<bean id="smsClientBean" class="com.lintasteknologi.client.sms.SMSClient"
/>

	
	<bean id="sessionManagerServiceBean"
class="com.lintasteknologi.service.impl.SessionManagerService">
		<property name="sessionManagerClient" ref="sessionManagerClientBean" />
	</bean>

	<bean id="smsServiceBean"
class="com.lintasteknologi.service.impl.SMSService">
		<property name="smsClient" ref="smsClientBean" />
		<property name="sessionManagerClient" ref="sessionManagerClientBean" />
	</bean>

	
	<bean id="jaxbProviderSoap"
class="org.apache.cxf.jaxrs.provider.JAXBElementProvider" />
</beans>

--
View this message in context: http://cxf.547215.n5.nabble.com/Null-Pointer-on-CXFNonSpringServlet-tp4957035p4957035.html
Sent from the cxf-user mailing list archive at Nabble.com.

Re: Null Pointer on CXFNonSpringServlet

Posted by Daniel Kulp <dk...@apache.org>.


My gut feeling is that it's due to:

> 	<bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl">

...........

> 	</bean>


CXFBusImpl wasn't meant to be public and used in contexts like that.  With 
2.4.x and later, within Spring, you really need the SpringBus subclass, but 
even that really isn't public.  You should be using the <cxf:bus> namespace 
support to define the bus.   That will likely fix the issue.   


Dan 




On Tuesday, November 01, 2011 8:40:25 PM ryluis wrote:
> hi guys,
> 
> i have just change to cxf 2.4.3, and created a simple rest web service,
> integrated with spring.
> 
> but stuck with this exception :
> 
> java.lang.NullPointerException
> 	at
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServle
> t.java:60)
> 
> 
> i confused with this error, since i never create any class that use/extend
> CXFNonSpringServlet.
> 
> last time i was using cxf 2.2.8, and never meet this error.
> 
> please kindly advise.
> 
> ===================
> 
> here is my :
> 
> *web.xml*
> 
> <web-app id="SDPFlexiRESTService_ID">
> 	<display-name>SDPFlexiRESTService</display-name>
> 
> 	<context-param>
> 		<param-name>contextConfigLocation</param-name>
> 		<param-value>classpath:applicationContext.xml</param-value>
> 	</context-param>
> 
> 	<listener>
> 
> <listener-class>org.springframework.web.context.ContextLoaderListener</liste
> ner-class> </listener>
> 
> 	<servlet>
> 		<servlet-name>CXFServlet</servlet-name>
> 		<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-
class>
> <load-on-startup>1</load-on-startup>
> 	</servlet>
> 
> 	<servlet-mapping>
> 		<servlet-name>CXFServlet</servlet-name>
> 		<url-pattern>/*</url-pattern>
> 	</servlet-mapping>
> </web-app>
> 
> 
> *cxf.xml*
> 
> <beans xmlns="http://www.springframework.org/schema/beans"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> 	xmlns:jaxrs="http://cxf.apache.org/jaxrs"
> xmlns:jaxws="http://cxf.apache.org/jaxws"
> 	xsi:schemaLocation="http://www.springframework.org/schema/beans
>  				http://www.springframework.org/schema/beans/spring-
beans.xsd
>  				http://cxf.apache.org/jaxrs
>  				http://cxf.apache.org/schemas/jaxrs.xsd
>  				http://cxf.apache.org/jaxws
> 				http://cxf.apache.org/schemas/jaxws.xsd">
> 
> 	<import resource="classpath:META-INF/cxf/cxf.xml" />
> 
> 
> 	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
> 	<import resource="classpath:applicationContext.xml" />
> 
> 
> 
> 	<jaxrs:server id="smsService" address="/">
> 		<jaxrs:serviceBeans>
> 			<ref bean="smsServiceBean" />
> 		</jaxrs:serviceBeans>
> 
> 		<jaxrs:providers>
> 			<ref bean="jaxbProviderSoap" />
> 		</jaxrs:providers>
> 
> 		<jaxrs:extensionMappings>
> 			<entry key="json" value="application/json" />
> 			<entry key="xml" value="application/xml" />
> 		</jaxrs:extensionMappings>
> 	</jaxrs:server>
> </beans>
> 
> *applicationContext.xml*
> 
> <beans>
> 
> 	<bean id="logInbound"
> class="org.apache.cxf.interceptor.LoggingInInterceptor" />
> 	<bean id="logOutbound"
> class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
> 
> 	<bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl">
> 		<property name="inInterceptors">
> 			<list>
> 				<ref bean="logInbound" />
> 			</list>
> 		</property>
> 		<property name="outInterceptors">
> 			<list>
> 				<ref bean="logOutbound" />
> 			</list>
> 		</property>
> 		<property name="outFaultInterceptors">
> 			<list>
> 				<ref bean="logOutbound" />
> 			</list>
> 		</property>
> 	</bean>
> 
> 
> 	<bean id="sessionManagerClientBean"
> class="com.lintasteknologi.client.session.SessionManagerClient" />
> 
> 	<bean id="smsClientBean" class="com.lintasteknologi.client.sms.SMSClient"
> />
> 
> 
> 	<bean id="sessionManagerServiceBean"
> class="com.lintasteknologi.service.impl.SessionManagerService">
> 		<property name="sessionManagerClient" ref="sessionManagerClientBean" 
/>
> 	</bean>
> 
> 	<bean id="smsServiceBean"
> class="com.lintasteknologi.service.impl.SMSService">
> 		<property name="smsClient" ref="smsClientBean" />
> 		<property name="sessionManagerClient" ref="sessionManagerClientBean" 
/>
> 	</bean>
> 
> 
> 	<bean id="jaxbProviderSoap"
> class="org.apache.cxf.jaxrs.provider.JAXBElementProvider" />
> </beans>
> 
> --
> View this message in context:
> http://cxf.547215.n5.nabble.com/Null-Pointer-on-CXFNonSpringServlet-tp49570
> 35p4957035.html Sent from the cxf-user mailing list archive at Nabble.com.
-- 
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog
Talend - http://www.talend.com

Re: Null Pointer on CXFNonSpringServlet

Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi

On 02/11/11 03:40, ryluis wrote:
> hi guys,
>
> i have just change to cxf 2.4.3, and created a simple rest web service,
> integrated with spring.
>
> but stuck with this exception :
>
> java.lang.NullPointerException
> 	at
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:60)
>
>
> i confused with this error, since i never create any class that use/extend
> CXFNonSpringServlet.
>

CXFServlet was made to extend CXFNonSpringServlet

> last time i was using cxf 2.2.8, and never meet this error.
>
> please kindly advise.
>
> ===================
>
> here is my :
>
> *web.xml*
>
> <web-app id="SDPFlexiRESTService_ID">
> 	<display-name>SDPFlexiRESTService</display-name>
>
> 	<context-param>
> 		<param-name>contextConfigLocation</param-name>
> 		<param-value>classpath:applicationContext.xml</param-value>
> 	</context-param>
>
> 	<listener>
> 	

I recall there were some intermediate issues immediately after that 
refactoring took place, should contextConfigLocation actually point to 
cxf.xml ?

Can you try it please
Sergey

> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
> 	</listener>
>
> 	<servlet>
> 		<servlet-name>CXFServlet</servlet-name>
> 		<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
> 		<load-on-startup>1</load-on-startup>
> 	</servlet>
>
> 	<servlet-mapping>
> 		<servlet-name>CXFServlet</servlet-name>
> 		<url-pattern>/*</url-pattern>
> 	</servlet-mapping>
> </web-app>
>
>
> *cxf.xml*
>
> <beans xmlns="http://www.springframework.org/schema/beans"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> 	xmlns:jaxrs="http://cxf.apache.org/jaxrs"
> xmlns:jaxws="http://cxf.apache.org/jaxws"
> 	xsi:schemaLocation="http://www.springframework.org/schema/beans
>   				http://www.springframework.org/schema/beans/spring-beans.xsd
>   				http://cxf.apache.org/jaxrs
>   				http://cxf.apache.org/schemas/jaxrs.xsd
>   				http://cxf.apache.org/jaxws
> 				http://cxf.apache.org/schemas/jaxws.xsd">
>
> 	<import resource="classpath:META-INF/cxf/cxf.xml" />
> 	
> 	
> 	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
> 	<import resource="classpath:applicationContext.xml" />
>
>
> 	
> 	<jaxrs:server id="smsService" address="/">
> 		<jaxrs:serviceBeans>
> 			<ref bean="smsServiceBean" />
> 		</jaxrs:serviceBeans>
>
> 		<jaxrs:providers>
> 			<ref bean="jaxbProviderSoap" />
> 		</jaxrs:providers>
>
> 		<jaxrs:extensionMappings>
> 			<entry key="json" value="application/json" />
> 			<entry key="xml" value="application/xml" />
> 		</jaxrs:extensionMappings>
> 	</jaxrs:server>
> </beans>
>
> *applicationContext.xml*
>
> <beans>
> 	
> 	<bean id="logInbound"
> class="org.apache.cxf.interceptor.LoggingInInterceptor" />
> 	<bean id="logOutbound"
> class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
>
> 	<bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl">
> 		<property name="inInterceptors">
> 			<list>
> 				<ref bean="logInbound" />
> 			</list>
> 		</property>
> 		<property name="outInterceptors">
> 			<list>
> 				<ref bean="logOutbound" />
> 			</list>
> 		</property>
> 		<property name="outFaultInterceptors">
> 			<list>
> 				<ref bean="logOutbound" />
> 			</list>
> 		</property>
> 	</bean>
>
> 	
> 	<bean id="sessionManagerClientBean"
> class="com.lintasteknologi.client.session.SessionManagerClient" />
>
> 	<bean id="smsClientBean" class="com.lintasteknologi.client.sms.SMSClient"
> />
>
> 	
> 	<bean id="sessionManagerServiceBean"
> class="com.lintasteknologi.service.impl.SessionManagerService">
> 		<property name="sessionManagerClient" ref="sessionManagerClientBean" />
> 	</bean>
>
> 	<bean id="smsServiceBean"
> class="com.lintasteknologi.service.impl.SMSService">
> 		<property name="smsClient" ref="smsClientBean" />
> 		<property name="sessionManagerClient" ref="sessionManagerClientBean" />
> 	</bean>
>
> 	
> 	<bean id="jaxbProviderSoap"
> class="org.apache.cxf.jaxrs.provider.JAXBElementProvider" />
> </beans>
>
> --
> View this message in context: http://cxf.547215.n5.nabble.com/Null-Pointer-on-CXFNonSpringServlet-tp4957035p4957035.html
> Sent from the cxf-user mailing list archive at Nabble.com.