2013-07-05 74 views
1

我正在使用將部署在Tomcat 6中的JSF 2的Web應用程序。我需要使用JNDI訪問HSQLDB數據源。我無法修改Tomcat的server.xml文件,也無法修改任何其他「Tomcat文件」。我已經看到了關於這個的各種教程和解釋,但都包括有關修改server.xml等的步驟,在這種情況下這是不允許的。我的問題是,這可以在不修改Tomcat文件的情況下完成(即僅對META-INFWEB-INF(如web.xml)中的文件進行更改,並將其他文件部署到.war文件中)如果是,需要修改哪些文件以及你能怎麼樣?這是我第一次訪問通過JNDI,更詳細的迴應,就更好了。由於建立一個數據庫。在JSF 2項目中配置用於JNDI和Tomcat 6的JDBC數據源

回答

2

看一看Apache Tomcat JNDI How-To

有閱讀,你只是需要修改/創建META-INF中的項目context.xml和WEB-INF中的web.xml ...

通過將您的資源的聲明添加到您的上下文中,在Tomcat中配置JNDI數據源。

<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" 
       maxActive="100" maxIdle="30" maxWait="10000" 
       username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver" 
       url="jdbc:mysql://localhost:3306/javatest"/> 

現在爲此測試應用程序創建一個WEB-INF/web.xml。

<resource-ref> 
     <description>DB Connection</description> 
     <res-ref-name>jdbc/TestDB</res-ref-name> 
     <res-type>javax.sql.DataSource</res-type> 
     <res-auth>Container</res-auth> 
    </resource-ref> 
+0

我建議你閱讀[如何應答(http://stackoverflow.com/questions/how-to-answer),具體爲:**提供連結方面:** _一個可能的解決方案的鏈接總是受歡迎的,但請在鏈接上添加上下文,以便您的同行用戶可以瞭解它是什麼以及它爲什麼在那裏。請始終引用重要鏈接中最相關的部分,以防目標網站無法訪問或永久離線._ – BackSlash

+0

@BackSlash我希望它現在符合要求!? – t7bdh3hdhb

+0

這有助於。我已經將必要的文件/代碼添加到我的項目中,並且(可能)已經成功。我仍然需要做更多的測試。但是,我有一個後續問題。我使用了您發佈的代碼,並進行了更改以使其適用於HSQLDB。當我試圖通過'Context initialContext = new InitialContext();'然後'DataSource ds =(DataSource)initialContext.lookup(「jdbc/TestDB」)獲得一個conn時;'我得到一個NamingException,告訴我名稱不是找到。但是當我第一眼看'.lookup(「java:comp/env/jdbc/TestDB」)時,它看起來會找到名字。爲什麼? – neizan