spring整合Jersey 无法注入service的问题

现象:

        action中的@autowired注入service或dao失败,报空指针异常

原因:

        造成该问题的原因是你并没有做好spring和jersey的整合工作,检查你的web.xml文件,jersey的配置肯定是下面这样,

[html] view plain copy
 
  1. <servlet>  
  2.     <servlet-name>epg Service</servlet-name>  
  3.     <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>  
  4.     <init-param>  
  5.         <param-name>com.sun.jersey.config.property.packages</param-name>  
  6.         <param-value>com.tgb</param-value>  
  7.     </init-param>  
  8.     <load-on-startup>1</load-on-startup>  
  9. </servlet>  
  10. <servlet-mapping>  
  11.      <servlet-name>epg Service</servlet-name>  
  12.      <url-pattern>/web/v30/*</url-pattern>  
  13. </servlet-mapping>  

解决的办法:

        1)  需要确认是否引入了jersey-spring.jar的jar包,如果没有,请先导入。

        2)  请将jersey的配置改成下面这样,

[html] view plain copy
 
  1. <servlet>  
  2.         <servlet-name>epg Service</servlet-name>  
  3.         <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>  
  4.         <init-param>  
  5.             <param-name>com.sun.jersey.config.property.packages</param-name>  
  6.             <param-value>com.tgb</param-value>  
  7.         </init-param>  
  8.         <load-on-startup>1</load-on-startup>  
  9. </servlet>  
  10. <servlet-mapping>  
  11.         <servlet-name>epg Service</servlet-name>  
  12.         <url-pattern>/web/v30/*</url-pattern>  
  13. </servlet-mapping>  

        大家可能已经看到,区别在于servlet-class的类。

       经过以上处理,困扰了我很久的问题终于搞定了!

    天津雍博科技有限责任公司

    欢迎大家访问www.yongbosoft.com ,崇尚技术,为您提供完美产品,优质服务!

原文地址:https://www.cnblogs.com/monjeo/p/9213598.html