我正在使用標準的MySQL連接器API的Jetty 9.2(嵌入式),我很困惑這應該如何設置。目前,我有這個在我的的web.xml文件:JNDI查找失敗與Jetty的JDBC連接池與MySQL?
<webapp ...
<resource-ref>
<description>JDBC Data Source</description>
<res-ref-name>jdbc/DataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</webapp>
......這在我的碼頭-env.xml:
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<New id="DatabaseConnector" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg></Arg>
<Arg>jdbc/DataSource</Arg>
<Arg>
<New class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
<Set name="Url">jdbc:mysql://localhost:3306/DBName</Set>
<Set name="User">user</Set>
<Set name="Password">pass</Set>
</New>
</Arg>
</New>
</Configure>
......這碼初始化:
Context envCtx = (Context) new InitialContext().lookup("java:comp/env");
DataSource datasource = (DataSource) envCtx.lookup("jdbc/DataSource");
當我嘗試啓動服務器,我得到的錯誤javax.naming.NameNotFoundException; remaining name 'jdbc/DataSource'
。我在代碼初始化時嘗試了很多不同的字符串,例如刪除InitialContext
對象上的lookup
調用,但我只是不斷得到相同錯誤的變體,其值爲name
;
這兩個xml文件都位於我的/WAR/WEB-INF
目錄中。我查看了大量以前的問題和教程,博客等,但我無處可去。
你可以發佈你的Jetty Embedded實例的WebAppContext.setConfiguration()代碼嗎? – 2014-10-06 14:52:44
我收到了我正在尋找其他地方的答案,我將發佈一個總結解決方案的答案。 – RTF 2014-10-06 19:00:32