我試圖在我的web應用程序中使用jetty-env.xml
文件定義兩個數據源。 它的工作原理確定只用一個數據源,但是我得到這個例外,當添加第二個數據源:在jetty中定義兩個數據源(jetty-env.xml)
java.lang.IllegalStateException: Nothing to bind for name javax.sql.DataSource/default
這裏是我的配置:
碼頭-env.xml
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<New id="ds" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg>jdbc/mybd1</Arg>
<Arg>
<New class="com.mchange.v2.c3p0.ComboPooledDataSource">
<Set name="driverClass">com.microsoft.sqlserver.jdbc.SQLServerDriver</Set>
<Set name="jdbcUrl">jdbc:jtds:sqlserver://url:1433/mybd1</Set>
<Set name="user">xx</Set>
<Set name="password">yy</Set>
</New>
</Arg>
</New>
<New id="ds2" class="org.eclipse.jetty.plus.jndi.Resource" >
<Arg>jdbc/mybd2</Arg>
<Arg>
<New class="com.mchange.v2.c3p0.ComboPooledDataSource">
<Set name="driverClass">com.microsoft.sqlserver.jdbc.SQLServerDriver</Set>
<Set name="jdbcUrl">jdbc:jtds:sqlserver://url:1433/mybd2</Set>
<Set name="user">xx</Set>
<Set name="password">yy</Set>
</New>
</Arg>
</New>
</Configure>
web.xml
<resource-ref>
<res-ref-name>jdbc/mybd1</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
<res-ref-name>jdbc/mybd2</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
的hibernate.cfg.xml(存在另一hibernate.cfb.xml以配置第二數據源)
<session-factory>
<property name="connection.datasource">jdbc/mybd1</property>
<!-- ... -->
任何線索?
謝謝,但我得到了非常相同的錯誤:( – polypiel
我有一個類似的問題,這對我有效。但現在我有另一個問題m ... – Raedwald
hehehe ...曾經看過jndi.Resource的構造嗎?資源(對象範圍,字符串jndiName,對象objToBind)資源(字符串jndiName,對象objToBind)...所以你可以同樣使用三個參數的值,空的第一參數範圍與兩個其他參數或只是兩個參數 – Striker