小弟看视频HIBERNATE配置JNDI但是老是提示有问题搞了几天网上的例子也找了不少 但就是配不上去 所以在这里把代码贴上来大家给帮忙分析分析吧 谢谢了使用的 数据库是SQLSERVER2000
项目名称是JJANDSSH
TOMCAT,,/SERVER.XML里的代码
<Context path="/demo" docBase="D:\workspace\JJAndSSH\WebRoot" debug="5" reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_SQLServer_log." suffix=".txt" timestamp="true"/>
<Resource name="jdbc/JJAndSSH" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/JJAndSSH">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>123456</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=stu</value>
</parameter>
<parameter>
<name>dialect</name>
<value>org.hibernate.dialect.SQLServerDialect</value>
</parameter> </ResourceParams>
</Context>
下来是HIBERNATE.CFG.XML里的代码
<session-factory>
<property name="connection.datasource">java:comp/env/jdbc/JJAndSSH</property>
<property name="show_sql">true</property>
<property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<mapping resource="com/test/SSH/beans/TestSpring.hbm.xml" /></session-factory>然后在插入数据的时候一点提交就有错误 代码是
javax.servlet.ServletException: Could not find datasource
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause org.hibernate.HibernateException: Could not find datasource
org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:56)
org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:56)
org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:397)
org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1933)
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1216)
com.test.SSH.factory.SessionFactory.getSession(SessionFactory.java:11)
com.test.SSH.dao.impl.TestSpringDaoImpl.IsSave(TestSpringDaoImpl.java:15)
com.yourcompany.struts.action.MyAction.execute(MyAction.java:46)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
贴上来的代码比较多 但是实际上并不难只是个配置 所以在这里小弟先谢谢各位回答问题的大哥们了 搞了2天了
项目名称是JJANDSSH
TOMCAT,,/SERVER.XML里的代码
<Context path="/demo" docBase="D:\workspace\JJAndSSH\WebRoot" debug="5" reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_SQLServer_log." suffix=".txt" timestamp="true"/>
<Resource name="jdbc/JJAndSSH" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/JJAndSSH">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>123456</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=stu</value>
</parameter>
<parameter>
<name>dialect</name>
<value>org.hibernate.dialect.SQLServerDialect</value>
</parameter> </ResourceParams>
</Context>
下来是HIBERNATE.CFG.XML里的代码
<session-factory>
<property name="connection.datasource">java:comp/env/jdbc/JJAndSSH</property>
<property name="show_sql">true</property>
<property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<mapping resource="com/test/SSH/beans/TestSpring.hbm.xml" /></session-factory>然后在插入数据的时候一点提交就有错误 代码是
javax.servlet.ServletException: Could not find datasource
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause org.hibernate.HibernateException: Could not find datasource
org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:56)
org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:56)
org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:397)
org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1933)
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1216)
com.test.SSH.factory.SessionFactory.getSession(SessionFactory.java:11)
com.test.SSH.dao.impl.TestSpringDaoImpl.IsSave(TestSpringDaoImpl.java:15)
com.yourcompany.struts.action.MyAction.execute(MyAction.java:46)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
贴上来的代码比较多 但是实际上并不难只是个配置 所以在这里小弟先谢谢各位回答问题的大哥们了 搞了2天了
HI的版本是3.2的 谢谢回复的各位!
下面的是官方的一个配置文件示例。
http://localhost:8080/docs/jndi-datasource-examples-howto.html<Context path="/DBTest" docBase="DBTest"
debug="5" reloadable="true" crossContext="true"> <!-- maxActive: Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to 0 for no limit.
--> <!-- maxIdle: Maximum number of idle dB connections to retain in pool.
Set to -1 for no limit. See also the DBCP documentation on this
and the minEvictableIdleTimeMillis configuration parameter.
--> <!-- maxWait: Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
--> <!-- username and password: MySQL dB username and password for dB connections --> <!-- driverClassName: Class name for the old mm.mysql JDBC driver is
org.gjt.mm.mysql.Driver - we recommend using Connector/J though.
Class name for the official MySQL Connector/J driver is com.mysql.jdbc.Driver.
-->
<!-- url: The JDBC connection url for connecting to your MySQL dB.
The autoReconnect=true argument to the url makes sure that the
mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
connection. mysqld by default closes idle connections after 8 hours.
--> <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/></Context>
WEB.XML好像不需要配 我也配了但是还是有问题 但是目前可以确定的是WEB.XML里不会有问题
1 建立context.xml文件,并且把这个文件放入你的项目的WebRoot\META-INF下,内容如下
<Context path="/demo" docBase="JJAndSSH"
debug="5" crossContext="true" reloadable="false"
cachingAllowed="true" cacheMaxSize="20480"
cacheTTL="10000">
<Resource name="demo" auth="Container"
removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
type="javax.sql.DataSource"
maxActive="50" maxIdle="10" maxWait="10000"
username="sa" password="123456"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433; DatabaseName=stu"/>
</Context>
2 在web.xml中加入如下代码,放入<web-app>节点下
<resource-ref>
<res-ref-name>demo</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3 把相应的jdbc驱动包放入项目的WebRoot\WEB-INF\lib目录下4 hibernate如下代码
<property name="connection.datasource">java:comp/env/demo</property>
里面搜hibernate ,结束后有个 MyEclipse Hibernate Tutorial 就是hibernate的dome
有图片和具体的步骤,只不过是英文的呵呵
你手动配TOMcat的SERVER.XML 说不定一不小心就配错拉
<property name="connection.datasource">
java:comp/env/jdbc/JJAndSSH </property><property name="show_sql">true </property> <property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<mapping resource="com/test/SSH/beans/TestSpring.hbm.xml" /> </session-factory> 直接写JNDI名字呢我的是WL+SQL2000+hib
jndi在WL里的名字是什么,我就写什么的,你试试呢
1 建立context.xml文件,并且把这个文件放入你的项目的WebRoot\META-INF下,内容如下 XML code <Context path="/demo" docBase="JJAndSSH"
debug="5" crossContext="true" reloadable="false"
cachingAllowed="true" cacheMaxSize="20480"
cacheTTL="10000">
<Resource name="demo" auth="Container"
removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
type="javax.sql.DataSource"
maxActive="50" maxIdle="10" maxWait="10000"
username="sa" password="123456"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433; DatabaseName=stu"/>
</Context>
2 在web.xml中加入如下代码,放入 <web-app>节点下 XML code <resource-ref>
<res-ref-name>demo</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3 把相应的jdbc驱动包放入项目的WebRoot\WEB-INF\lib目录下 4 hibernate如下代码
<property name="connection.datasource">java:comp/env/demo </property>
<Resource name="jdbc/car" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/car">
<parameter>
<name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=Spell_Car</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>123456</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>20</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
</ResourceParams>
</Context>
C:\Program Files\Tomcat 5.0\conf\Catalina\localhost\text.xml
server.xml不会驱动,现在的连接池都是拿出来一个context.xml,很简单!
不过还是谢谢了 问题还是没解决 因为在MYECLIPSE6下启动TOMCAT5.5然后测试发现新弹出个窗口错误是Source not found for CursorableLinkedList.removeFirst() line: 571
麻烦有经验的大哥们帮帮忙啊。。已经1个星期啦!!!晕死、8楼的兄弟偶会给你100分的 还是谢谢了