在学习struts中的数据源连接时遇到一个问题。 
struts-config.xml配置如下: 
<data-sources> 
<data-source key="mysqldb1" type="org.apache.commons.dbcp.BasicDataSource"> 
<set-property property="driverClassName" value="org.gjt.mm.mysql.Driver" /> 
<set-property property="url" value="jdbc:mysql://localhost/test" /> 
<set-property property="maxActive" value="5" /> 
<set-property property="username" value="root" /> 
<set-property property="password" value="psw" /> 
<set-property property="autoCommit" value="true" /> 
</data-source> 
</data-sources> 在Action中获取数据源的代码如下: 
ServletContext context = servlet.getServletContext(); 
DataSource datasource = (DataSource)context.getAttribute("mysqldb1"); 
进行调试后发现context.getAttribute()总是返回的null值,也就是没有找到"mysqldb1"属性。在网上查到的一些解决方法说可以使用getDataSource(request,"mysqldb1")或findDataSource()。但Action中好像没有这两个方法的定义。而且我也将所需要的jar放入了%Tomcat_HOME%common/lib目录下, 
有commons-pool-1.3.jar 
commons-dbcp.1.2.1.jar 
commons-collections-3.2.jar 
mysql-connector-java-5.0.3-bin.jar 我的开发环境为: 
eclipse3.2 
jdk1.5 
Tomcat5.5.17 
Struts1.3.5 
要连接的数据库为MySql。 
还望有哪位高人能指点一二,在此先谢谢了。 

解决方案 »

  1.   

    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause java.lang.NullPointerException
    org.apache.jsp.bookMain_jsp._jspService(bookMain_jsp.java:113)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
    --------------------------------------------------------------------------------Apache Tomcat/5.0.28