2

GlassFish v3を使用しています。次のフィールドがクラスで宣言されています。

@Resource
private javax.sql.DataSource _data_source;

以下は web.xml で宣言されています。

<data-source>
  <name>java:app/env/data</name>
  <class-name>com.mysql.jdbc.Driver</class-name>
  <server-name>localhost</server-name>
  <port-number>3306</port-number>       
  <user>myUser</user>                           
  <password>myPass</password>
</data-source>

実行時の _data_source は空です。私は何を間違っていますか?

4

4 に答える 4

2

これを試していただけますか:

@Resource(lookup = "java:app/env/data")
private DataSource _data_source;

こちらもご覧ください

于 2010-06-12T23:40:26.870 に答える
1

使用してみてください:

@Resource(lookup="java:app/env/data")
private DataSource _data_source;
于 2010-07-30T13:29:09.997 に答える
1

Pascal の回答に加えて: 注釈による注入が機能しない場合 (例外が発生せず、フィールドが単に null である場合)、問題は多くの場合、古い展開記述子のバージョンです。Glasfish v3 の場合、以下を使用できます。

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
于 2010-06-12T23:55:50.613 に答える
0

このようなものは動作するはずです.xmlはありません:

@Resource(name="jdbc/__default")
private DataSource ds
...
Connection con = null {
try {
  con = ds.getConnection();
  ...
} finally {
  if (con != null) con.close()
}
于 2010-06-14T20:35:18.200 に答える