即時嘗試建立一個hibernate和jdbc連接池由JNDI,但我沒有成功這樣做。經過數小時的研究,我來找你,也許有人知道答案。Hibernate Jndi Tomcat錯誤:不支持BasicDataSource
第一件事:我使用Tomcat 8.0和Hibernate 5.2.8。實際上我不能在這些交替,如果這需要使它工作。
錯誤即時得到的是:「java.lang.UnsupportedOperationException:通過的BasicDataSource不支持」
我發現了什麼至今:錯誤似乎發生(IM不能100%確定),由於在改變DatasourceConnectionProviderImpl.getConnection,其中「getConnection(用戶名,密碼」是'depricated'(實際上,它只是拋出這個錯誤)
但是,這裏的捕獲,即使我不轉移任何參數,我得到這個異常。我試圖讓我自己的接口「javax.sql.DataSource」來克服這一點,但這也沒有幫助。
另一件事:JDBC工作得很好,唯一的問題是休眠。
跟進的背景下,網絡和類的相關信息:
語境:
<Resource name="jdbc/basic"
global="jdbc/basic"
auth="Container"
type="javax.sql.DataSource"
maxActive="10"
maxIdle="20"
maxWait="10000"
username="root"
password="1"
driverClassName="com.mysql.jdbc.Driver"
testOnBorrow="true"
url="jdbc:mysql://localhost/javatest"
/>
網站:
<resource-ref>
<description>JNDI MYSql JDBC Connection</description>
<res-ref-name>jdbc/basic</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
代碼:如果不再信息需要
public TestClass() {
try {
Connection jdbc = ((javax.sql.DataSource) new InitialContext().lookup("java:comp/env/jdbc/basic")).getConnection();
System.out.println(new Configuration().configure("managedbeans/hibernate.cfg.xml").buildSessionFactory().openSession().createQuery("Select * from Testdata").list().size());
} catch (Exception e) {
e.printStackTrace();
}
}
,im ha根據要求
:PPY提供
伊迪絲
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.datasource">java:comp/env/jdbc/basic</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="current_session_context_class">thread</property>
<property name="hbm2ddl.auto">update</property>
<property name="hibernate.max_fetch_depth">3</property>
<!-- Mapped annotated entity-->
<mapping class="managedbean.TestPojo"/>
</session-factory>
</hibernate-configuration>
你能打印你的hibernate.cfg.xml嗎? –
我添加了cfg.xml。 – Bienenwolf
我注意到你爲映射提到'managedBean',但是當你配置Hibernate時你提到'managedBeans'。你有兩條路,是一個錯字,還是失敗的原因。我用Hibernate 5.2.8站起來了一個Tomcat8實例,沒有JNDI問題。 – Naros