前天按照智囊团的视频做工程
中间出现了很多错误 让人头痛 有
Cannot create JDBC driver of class '' for connect URL 'null'
Name jdbc not bound in context
等
昨天查了一天 改了半天 今天终于弄好了 原因有几个
1。包没加全。myeclipse有些包不会自动加载进lib内 需要自己手动加载 比如:struts的包
2。server.xml配置不对 网上有人说TOMCAT 5。0和TOMCAT 5。5的resource语法有点变化
我这里的配置是
<GlobalNamingResources> <Context path="/zhinangtuan" docBase="D:/javaproject/MyZhiNangTuanDemo/WebRoot" debug="5" reloadable="true" crossContext="true"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_MysqlTest_log." suffix=".txt" timestamp="true" /> <Resource name="jdbc/mldn" auth="Container" type="javax.sql.DataSource" factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="100" maxIdle="30" maxWait="5000" username="root" password="root" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost:3306/mldn" /> </Context> </GlobalNamingResources> <DefaultContext> <ResourceLink global="jdbc/mldn" name="jdbc/mldn" type="javax.sql.DataSource" /> </DefaultContext>
3.web.xml和WEB-INF/lib/classes下的applicationContext.xml配置出现问题
我这里的配置为
applicationContext.xml:
<bean id="hibernateInterceptor" class="org.springframework.orm.hibernate3.HibernateInterceptor"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <!-- 表示允许自动提交 --> <prop key="hibernate.connection.autocommit">true</prop> <!-- 显示sql语句 --> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="mappingResources"> <list> <value>org/lxh/myzngt/vo/Admin.hbm.xml</value> <value>org/lxh/myzngt/vo/User.hbm.xml</value> <value>org/lxh/myzngt/vo/Item.hbm.xml</value> <value>org/lxh/myzngt/vo/Subitem.hbm.xml</value> <value>org/lxh/myzngt/vo/Answer.hbm.xml</value> <value>org/lxh/myzngt/vo/Question.hbm.xml</value> </list> </property> </bean> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean>
web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <filter> <filter-name>encoding</filter-name> <filter-class> org.lxh.myzngt.filter.EncodingFilter </filter-class> <init-param> <param-name>charset</param-name> <param-value>gbk</param-value> </init-param> </filter> <filter-mapping> <filter-name>encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>userlogin</filter-name> <filter-class> org.lxh.myzngt.filter.UserLoginFilter </filter-class> </filter> <filter-mapping> <filter-name>userlogin</filter-name> <url-pattern>/jsp/user/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>userlogin</filter-name> <url-pattern>/jsp/ques/*</url-pattern> </filter-mapping> <filter> <filter-name>adminlogin</filter-name> <filter-class> org.lxh.myzngt.filter.AdminLoginFilter </filter-class> </filter> <filter-mapping> <filter-name>adminlogin</filter-name> <url-pattern>/jsp/admin/*</url-pattern> </filter-mapping> <filter> <filter-name>opensession</filter-name> <filter-class> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter </filter-class> </filter> <filter-mapping> <filter-name>opensession</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/classes/applicationContext.xml </param-value> </context-param> <servlet> <servlet-name>context</servlet-name> <servlet-class> org.springframework.web.context.ContextLoaderServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.ActionServlet </servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>3</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>3</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <session-config> <session-timeout>30</session-timeout> </session-config> <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/mldn</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app>
4。修改/conf/Catalina/localhost目录下建立一个xml文件,名称为你所发布的web应用的名称.xml,(如testpool.xml)打开添加内容如下:
<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jdbc/mldn" auth="Container" type="javax.sql.DataSource" factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="100" maxIdle="30" maxWait="5000" username="root" password="root" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost:3306/mldn" /> </Context>
内容同conf/server.xml中配置少了这一步会报错:Cannot create JDBC driver of class '' for connect URL 'null'
搜了n久后启动tomcat终于米报错 。大致原因 应该是数据源的 各个部分都需要配置映射。