2012-04-17 65 views
2

如何在不改變應用程序中的任何代碼的情況下在JBoss中創建ConnectionPool/JDBC?我已經有了部署文件(.WAR)。在JBoss AS 5.x中使用Tomcat連接池

例如,在tomcat中,我只需要添加一個新的資源到server.xml文件。類似的東西:

... 
<GlobalNamingResources> 
    ... 
    <Resource driverClassName="com.mysql.jdbc.Driver" name="testDBConnectionPool" password="root" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/testDB" username="root"/> 
    ... 
</GlobalNamingResources> 
... 

如何在JBoss中做到這一點?據我所知,JBoss使用mysql-ds.xml file,但我們需要在代碼中調用它。我對嗎?

在JBoss中是否有類似Tomcat的方法?

回答

2

在mysql-ds.xml中添加所需的信息並將其放入$ JBOSS_HOME/dirserver/default/deploy中。

如果您的數據源名稱爲jdbc/MySQLDS,那麼你可以這樣調用它

javax.naming.Context ic = new javax.naming.InitialContext(); 
javax.naming.Context ctx = (javax.naming.Context) ic.lookup("java:"); 
javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup("jdbc/MySQLDS"); 
java.sql.Connection con = ds.getConnection(); 

更新:

你需要確保的mysql-ds.xml中有哪些是準確值在那裏tomcat的server.xml。

+0

謝謝,但我的問題是,我無法更改代碼。我只需要發佈WAR文件... jdbc連接是在persistence.xml中的WAR中定義的。 – jbatista 2012-04-17 14:38:00

+1

您不必更改任何內容,只需配置數據源和發佈即可。您可以參考context.xml或web.xml文件中給出的JDBC數據源。只要你的名字在JBoss中的context.xml/web.xml和* -ds.xml中沒有區別。他們都應該工作。 – Phani 2012-04-19 06:49:17