Java异常 Cannot create resource instance 解决方法

今天在测试项目时候遇到一个问题,如下图

QQ截图20161127205424.jpg

javax.naming.NamingException: Cannot create resource instance
	at org.apache.naming.factory.FactoryBase.getObjectInstance(FactoryBase.java:96)
	at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:847)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:158)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:835)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:172)
	at org.apache.catalina.core.DefaultInstanceManager.lookupFieldResource(DefaultInstanceManager.java:561)
	at org.apache.catalina.core.DefaultInstanceManager.processAnnotations(DefaultInstanceManager.java:459)
	at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:142)
	at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:119)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)
	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:817)

后来查阅一下源代码,有一个地方是在Servlet中引用了SpringMVC注解获取Service对象

@WebServlet("/wv/ver")
public class WeVerifyServlet extends HttpServlet {

	@Resource
	private AccessTokenService accessTokenService;
...

AccessTokenService 组件获取中出现了异常情况,所以后来修改,将注解删掉,在get或post方法中,使用以下方式调用获取SpringBean对象,问题解决

WebApplicationContext context =  WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());  
AccessTokenService accessTokenService = (AccessTokenService) context.getBean("accessTokenService");

这是我的解决方式,可能跟网友们的答案不一样,就算是参考一下吧


未经允许请勿转载:程序喵 » Java异常 Cannot create resource instance 解决方法

点  赞 (1) 打  赏
分享到: