现象:
action中的@autowired注入service或dao失败,报空指针异常
原因:
造成该问题的原因是你并没有做好spring和jersey的整合工作,检查你的web.xml文件,jersey的配置肯定是下面这样,
[html] view plain copy
- <servlet>
- <servlet-name>epg Service</servlet-name>
- <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
- <init-param>
- <param-name>com.sun.jersey.config.property.packages</param-name>
- <param-value>com.tgb</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>epg Service</servlet-name>
- <url-pattern>/web/v30/*</url-pattern>
- </servlet-mapping>
解决的办法:
1) 需要确认是否引入了jersey-spring.jar的jar包,如果没有,请先导入。
2) 请将jersey的配置改成下面这样,
[html] view plain copy
- <servlet>
- <servlet-name>epg Service</servlet-name>
- <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
- <init-param>
- <param-name>com.sun.jersey.config.property.packages</param-name>
- <param-value>com.tgb</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>epg Service</servlet-name>
- <url-pattern>/web/v30/*</url-pattern>
- </servlet-mapping>
大家可能已经看到,区别在于servlet-class的类。
经过以上处理,困扰了我很久的问题终于搞定了!
当在action中使用@autowired注解注入service或dao时遇到空指针异常,原因可能是spring与jersey的整合配置不正确。解决办法包括确保引入jersey-spring.jar,并将servlet-class改为com.sun.jersey.spi.spring.container.servlet.SpringServlet。完成这些更改后,问题通常可以得到解决。

7841

被折叠的 条评论
为什么被折叠?



