Tomcat中的数据源注入问题

时间:2018-04-03 07:27:36

标签: java tomcat

我已经通过以下方式在tomcat 8.5.29中为oracle数据库配置了一个数据源:

第1步:

在tomcat中编辑server.xml如下:

<GlobalNamingResources>

    <Resource name="jdbc/personapp" global="jdbc/personapp" auth="Container"
          type="javax.sql.DataSource" 
          driverClassName="oracle.jdbc.xa.client.OracleXADataSource"
          url="jdbc:oracle:thin:<host_name>:1521:<db_name>"
          username="my_user_name" password="my_pwd" 
          maxActive="100" 
          maxIdle="20" 
          minIdle="5" 
          maxWait="10000"/>
  </GlobalNamingResources>

第2步:    编辑了context.xml,如下所示:

<ResourceLink name="jdbc/personappLocalDB"
              global="jdbc/personapp"
              auth="Container"
              type="javax.sql.DataSource" />

我有DBUtility.java课程如下:

public class DBUtility {

  @Resource(lookup="java:/comp/env/jdbc/personappLocalDB")
  private static DataSource dataSource;

  public static Connection getConnection() {
    try {
        connection = dataSource.getConnection();
        System.out.println("connection="+connection); 
    } catch(Exception e){
        e.printStackTrace();
    }
    return connection;
  }
}

我遇到以下异常:

java.lang.NullPointerException
    at com.adv.dao.DBUtility.getConnection(DBUtility.java:27)

DataSource没有被注入Java类。

有人能解决问题吗?

1 个答案:

答案 0 :(得分:1)

您的实用程序类不是@Named@EJB。如果@Resource注释位于常规POJO中,则不会对其进行处理。