org.apache.struts.action Class ActionServlet 
public class ActionServletextends javax.servlet.http.HttpServlet 
忘了包,sorry
package mystruts;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;

解决方案 »

  1.   

    Tomcat 日志里面有这样的咚咚:
    2004-10-29 14:14:20 org.apache.struts.action.ActionServlet initModuleDataSources
    严重: Initializing application data source org.apache.struts.action.DATA_SOURCE
    java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3074)
    at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
    at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
    at org.apache.struts.legacy.GenericDataSource.createConnection(GenericDataSource.java:805)
    at org.apache.struts.legacy.GenericDataSource.open(GenericDataSource.java:741)
    at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:1085)
    at org.apache.struts.action.ActionServlet.init(ActionServlet.java:472)
    at javax.servlet.GenericServlet.init(GenericServlet.java:211)
    但是我没有用什么ODBC啊,用连接池和不用连接池驱动是不是都是class12.jar?
      

  2.   

    你的oracle JDBC 驱动.jar文件是不是放在tomcat能找到的地方,比方说是环境变量classpath里面?
      

  3.   

    不建议用Struts的连接池,连Struts自己都觉得不好,在Struts1.2.4种把DataSource删掉了
      

  4.   

    一般不这么用,一般用JNDI连接
      

  5.   

    To:dlxu(沿着Java继续前进) 说的好,我现在下载了common-dbcp,配制方法还是
       先修改server-config.xml,然后再Action中如下调用:
    ================================================================================
     try {
                ds = getDataSource(request);
                conn = ds.getConnection();
                stmt = conn.createStatement();
                rs = stmt.executeQuery("select username from users");
                while (rs.next()){
                    System.out.println(rs.getString("username"));
                }
            } catch (SQLException  ex) {
                System.out.println(ex.getMessage());
            } finally {
                try {
                    if(!conn.isClosed()){
                        conn.close();
                    }
                } catch (SQLException e) {
                    getServlet().log("Connection.close", e);
                }            return mapping.findForward("success");
            }
        }
    ===============================================================================
    但是日志中还是抱错,让我不知所谓
    ////////////////////////////////////////////////////////////////////
    2004-11-1 16:11:30 org.apache.struts.action.ActionServlet initModuleDataSources
    严重: Initializing application data source org.apache.struts.action.DATA_SOURCE
    java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3074)
    at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
    at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
    at org.apache.struts.legacy.GenericDataSource.createConnection(GenericDataSource.java:805)
    at org.apache.struts.legacy.GenericDataSource.open(GenericDataSource.java:741)
    at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:1085)
    at org.apache.struts.action.ActionServlet.init(ActionServlet.java:472)
    at javax.servlet.GenericServlet.init(GenericServlet.java:211)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1019)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3991)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4335)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
    at org.apache.catalina.core.StandardService.start(StandardService.java:476)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:2298)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:284)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:422)
    ///////////////////////////////////////////////////////////////////////////
      

  6.   

    可参考这里Struts_DB开源项目:http://javaweb.getbbs.com
    下载:http://www.vdisk.cn/
      ID:javaweb
    Struts_DB开源项目说明1、背景:
            (1)Struts提供的datasource接口需要用ActionServlet中定义的方法从Action类访问数据源,不能从其它类中用它。
            (2)由于新版本的Struts 不再提供GenericDataSource和GenericConnection接口。
            (3)Struts直接操作数据库时,存在中文乱码问题。
            (4)Struts未提供数据的分页、数据库操作等功能。
             
    2、Struts_DB开源项目将解决上述问题,为Struts提供简易的、良好的数据库连接、操作功能。
    3、做成标准的Struts数据库组件。使用方法1,在web.xml中以servlet加载:
    <servlet>
        <servlet-name>dbInit</servlet-name>
        <servlet-class>javawebstudio.struts_db.DBInitServlet</servlet-class>
        <init-param>
          <param-name>driverClass</param-name>
          <param-value>com.microsoft.jdbc.sqlserver.SQLServerDriver</param-value>
        </init-param>
        <init-param>
          <param-name>jdbcURL</param-name>
          <param-value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=EDB</param-value>
        </init-param>
        <init-param>
          <param-name>minCount</param-name>
          <param-value>1</param-value>
        </init-param>
        <init-param>
          <param-name>maxCount</param-name>
          <param-value>10</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
        <init-param>
          <param-name>user</param-name>
          <param-value>sa</param-value>
        </init-param>
        <init-param>
          <param-name>password</param-name>
          <param-value>sa</param-value>
        </init-param>
      </servlet>
    使用方法2,在struts-config.xml中以PlugIn加载:
    <plug-in className="javawebstudio.struts_db.DatabasePlugIn" >
             <set-property property="driverClass" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
             <set-property property="jdbcURL" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=EDB"/>
             <set-property property="minCount" value="1"/>
             <set-property property="maxCount" value="10"/>   
             <set-property property="user" value="sa"/>   
             <set-property property="password" value="sa"/>
         </plug-in >