获得空指针异常@Resource注释在tomact 7

编程入门 行业动态 更新时间:2024-10-26 18:22:35
本文介绍了获得空指针异常@Resource注释在tomact 7的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

下面是我的context.xml Resource元素:

Here is my Resource element in context.xml ::

<Resource name="jdbc/myoracle" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:XE" username="hr" password="hr" maxActive="20" maxIdle="10" maxWait="-1"/>

下面是在web.xml中我的资源引用:

Here is my Resource reference in web.xml:

<resource-ref> <description>Oracle Datasource</description> <res-ref-name>jdbc/myoracle</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>

然后我用 @Resource 标注在我的code:

@Resource(mappedName = "jdbc/myoracle") DataSource ds;

当我尝试使用的getConnection()在DS创建连接对象,我在运行时得到一个空指针异常:

When I try to create connection object using getConnection() on ds, I get a null pointer exception during runtime:

Oct 24, 2011 12:18:21 PM org.apache.catalina.core.StandardWrapperValve invoke INFO: java.lang.NullPointerException at jdbc.patientDaoImpl.get_patients(patientDaoImpl.java:248) at org.apache.jsp.index2_jsp._jspService(index2_jsp.java:92) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at orgbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:223) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204) at org.apache.tomcat.util.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662)

但是,如果我用查找InitialContext的应用程序工作正常。

But if I lookup using initialContext the app works fine.

Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup("java:/comp/env"); DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");

我在哪里去了?

推荐答案

Tomcat本身并不支持 @Resource 注入。换句话说,servlet容器不能识别的注释,不能用它做任何事情。手工查找的工作,因为资源是正确定义。

Tomcat itself does not support @Resource injection. In other words, the servlet container does not recognize that annotation and can't do anything with it. Manual lookup works, because the resource is defined properly.

您需要一些依赖注入框架:

You need some dependency-injection framework:

  • 春季
  • CDI(在JavaEE6网络配置文件的一部分)
  • EJB(在JavaEE6网络配置文件,不完全是DI框架的一部分)

更多推荐

获得空指针异常@Resource注释在tomact 7

本文发布于:2023-11-15 22:54:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1598682.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:指针   注释   异常   Resource   tomact

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!