Tomcat 6.0 两个数据源, hibernate配置JNDI问题。

MR小陳 2012-04-26 02:41:10
项目需要配置两个数据源,采用JNDI方式,我在spring中已经配置成功一个数据源,但配置第二个数据源时出现bug . 各位帮忙看下,感激不尽。

tomcat 6.0 context.xml如下:


Java代码
1.<Resource name="jdbc/ora10"
2. type="javax.sql.DataSource"
3. driverClassName="oracle.jdbc.driver.OracleDriver"
4. url="jdbc:oracle:thin:@10.10.26.69:1521:ora10g"
5. username="guoyuan" password="1qaz2wsx" maxActive="200" maxIdle="10"
6. maxWait="-1"
7./>
8.
9.<Resource name="jdbc/herora10"
10. type="javax.sql.DataSource"
11. driverClassName="oracle.jdbc.driver.OracleDriver"
12. url="jdbc:oracle:thin:@10.10.26.69:1521:ora10g"
13. username="guoyuan" password="1qaz2wsx" maxActive="200" maxIdle="10"
14. maxWait="-1"
15./>
<Resource name="jdbc/ora10"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@10.10.26.69:1521:ora10g"
username="guoyuan" password="1qaz2wsx" maxActive="200" maxIdle="10"
maxWait="-1"
/>

<Resource name="jdbc/herora10"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@10.10.26.69:1521:ora10g"
username="guoyuan" password="1qaz2wsx" maxActive="200" maxIdle="10"
maxWait="-1"
/>

web项目web.xml如下:

Java代码
1. <!-- jndi configration (hibernate.properties )-->
2. <resource-ref>
3. <description>DB DataSource</description>
4. <res-ref-name>jdbc/ora10</res-ref-name>
5. <res-type>javax.sql.DataSource</res-type>
6. <res-auth>Container</res-auth>
7.</resource-ref>
8. <!-- jndi configration (hibernate.properties )-->
9. <resource-ref>
10. <description>DB DataSource</description>
11. <res-ref-name>jdbc/herora10</res-ref-name>
12. <res-type>javax.sql.DataSource</res-type>
13. <res-auth>Container</res-auth>
14.</resource-ref>
<!-- jndi configration (hibernate.properties )-->
<resource-ref>
<description>DB DataSource</description>
<res-ref-name>jdbc/ora10</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<!-- jndi configration (hibernate.properties )-->
<resource-ref>
<description>DB DataSource</description>
<res-ref-name>jdbc/herora10</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

第一成功数据源spring配置文件下,如下:

Java代码
1.<!-- jndi datasource -->
2.<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
3. <property name="jndiName">
4. <value>java:comp/env/jdbc/ora10</value>
5. </property>
6.</bean>
<!-- jndi datasource -->
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/ora10</value>
</property>
</bean>
...全文
206 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
浮生醉 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
第二个数据源要配置到hibernate.cfg.xml下,如下:

Java代码
1.<session-factory>
2.
3. <!-- 数据源的名称 -->
4.
5. <property name="connection.datasource">java:comp/env/jdbc/herora10</property>
6.
7. <!-……
[/Quote]


、、、、
MR小陳 2012-04-26
  • 打赏
  • 举报
回复
第二个数据源要配置到hibernate.cfg.xml下,如下:

Java代码
1.<session-factory>
2.
3. <!-- 数据源的名称 -->
4.
5. <property name="connection.datasource">java:comp/env/jdbc/herora10</property>
6.
7. <!-- Hibernate的连接加载类 -->
8.
9. <property name="connection.provider_class">net.sf.hibernate.connection.DatasourceConnectionProvider</property>
10.
11. <property name="dialect">net.sf.hibernate.dialect.OracleDialect</property>
<session-factory>

<!-- 数据源的名称 -->

<property name="connection.datasource">java:comp/env/jdbc/herora10</property>

<!-- Hibernate的连接加载类 -->

<property name="connection.provider_class">net.sf.hibernate.connection.DatasourceConnectionProvider</property>

<property name="dialect">net.sf.hibernate.dialect.OracleDialect</property>

可是第二个数据源怎么也不能成功,错误信息如下:

Java代码
1.java.lang.UnsupportedOperationException: Not supported by BasicDataSource
2. at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:899)
3. at net.sf.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:56)
4. at net.sf.hibernate.impl.BatcherImpl.openConnection(BatcherImpl.java:292)
5. at net.sf.hibernate.impl.SessionImpl.connect(SessionImpl.java:3373)
6. at net.sf.hibernate.impl.SessionImpl.connection(SessionImpl.java:3333)
7. at net.sf.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:40)
8. at net.sf.hibernate.transaction.JDBCTransactionFactory.beginTransaction(JDBCTransactionFactory.java:19)
9. at net.sf.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:2252)
10. at com.iss.inut.web.BaseAction.execute(BaseAction.java:81)
11. at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:53)
12. at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:64)
13. at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48)
14. at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
15. at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
16. at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
17. at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280)
18. at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
19. at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
20. at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
21. at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
22. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
23. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
24. at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:173)
25. at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
26. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
27. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
28. at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:414)
29. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
30. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
31. at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
32. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
33. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
34. at com.iss.framework.web.filter.ScriptAttackFilter.doFilter(ScriptAttackFilter.java:93)
35. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
36. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
37. at com.iss.framework.web.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
38. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
39. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
40. at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
41. at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
42. at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
43. at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
44. at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
45. at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
46. at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
47. at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
48. at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
49. at java.lang.Thread.run(Thread.java:595)
java.lang.UnsupportedOperationException: Not supported by BasicDataSource
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:899)
at net.sf.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:56)
at net.sf.hibernate.impl.BatcherImpl.openConnection(BatcherImpl.java:292)
at net.sf.hibernate.impl.SessionImpl.connect(SessionImpl.java:3373)
at net.sf.hibernate.impl.SessionImpl.connection(SessionImpl.java:3333)
at net.sf.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:40)
at net.sf.hibernate.transaction.JDBCTransactionFactory.beginTransaction(JDBCTransactionFactory.java:19)
at net.sf.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:2252)
at com.iss.inut.web.BaseAction.execute(BaseAction.java:81)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:53)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:64)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:173)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:414)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.iss.framework.web.filter.ScriptAttackFilter.doFilter(ScriptAttackFilter.java:93)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.iss.framework.web.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)
这问题已经浪费我一天半时间了。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧