簡體   English   中英

為Ingres數據庫創建JNDI連接

[英]Create JNDI Connection for Ingres Database

我有一個Java項目,我一直在嘗試為我的Ingres數據庫創建一個JNDI連接但是沒有成功。 我不確定是否需要包含某些特定於ingres的內容,但經過相當多的研究后,我無法讓事情發揮作用。

在我的項目中,我在web.xml文件和context.xml中有我的數據源信息

context.xml具有以下信息

<Context>
<Resource name="jdbc/myDB" auth="Container" type="javax.sql.Datasource"   
  username="myUser" password="password" driverClassName="com.ingres.jdbc.IngresDriver"
  url="databaseURL" maxActive="8" maxIdle="4" maxWait="100" />

 </Context>

我的web.xml有以下信息

<web-app>
<resource-ref>
    <description>Project Descrip</description>
    <res-ref-name>jdbc/myDB</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>
</web-app>

在我的java代碼中,我試圖使用以下四行來獲取我的連接

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

return ds.getConnection();

執行第三行后,我得到一個異常,說明:NamingException - 無法創建資源實例

我找到了幾十個有相同例外的帖子,並嘗試了建議的解決方案,沒有運氣。 我正在使用Tomcat 7服務器,並確保將必要的ingres jar(iijdbc.jar)包含到我的WEB-INF / lib文件夾和我的tomcat lib文件夾中。

任何幫助或建議將不勝感激

我對Ingres知之甚少,但如果嘗試創建數據源類似於JBOSS和DB2或MySQL。 我注意到你在WEB.XML中定義了你的resource-ref,但你沒有提到有關servlet參數的任何內容。

<servlet>
    <description>Servlet Description</description>
    <display-name>MyServlet</display-name>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>servlet.MyServlet</servlet-class>

    <init-param>
        <param-name>MyDB</param-name>
        <param-value>java:comp/env/jdbc/MyDB</param-value>
     </init-param>

     <load-on-startup>1</load-on-startup>
</servlet>

然后你需要在你的sevlet中編碼:

InitialContext initialContext = new InitialContext();
DataSource dataSource = (DataSource)initialContext.lookup(this.getInitParameter("MyDB"));

希望這可以幫助。

您可以嘗試在Resource標記中添加global="jdbc/myDB"屬性,如下所示:

<Context>
  <Resource name="jdbc/myDB" auth="Container" type="javax.sql.Datasource"   
    username="myUser" password="password" driverClassName="com.ingres.jdbc.IngresDriver"
    url="databaseURL" maxActive="8" maxIdle="4" maxWait="100" global="jdbc/myDB"/>
</Context>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM