具体的数据库配置文件如:mysql-service.xml

解决方案 »

  1.   

    看你写的配置文件应该没错,
    另外两个可能:
    1、sqlserver的jdbc驱动程序可有放到lib下?
    2、用户名和密码是否正确?从你的程序看第一个可能性比较大。如果问题还没解决,建议你把错误信息打出来。
      

  2.   

    你的配置应当没问题的我给你个应用的列子package com.eShop.login;import org.apache.struts.action.Action;
    import java.io.IOException;
    import javax.servlet.http.HttpServletRequest;
    import org.apache.struts.action.ActionForward;
    import javax.servlet.ServletException;
    import org.apache.struts.action.ActionMapping;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.ActionForm;
    import javax.sql.DataSource;
    import java.sql.Connection;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionError;
    import javax.servlet.http.HttpSession;public final class LoginAction extends Action {
        public ActionForward execute(ActionMapping mapping,
          ActionForm form,
          HttpServletRequest request,
          HttpServletResponse response)
          throws IOException, ServletException {
          //get userinfo
          UserForm userForm = (UserForm) form;
           //从web层获得用户名和口令
          String username = userForm.getUsername();
          String password = userForm.getPassword();
          //声明错误集对象
          ActionErrors errors = new ActionErrors();
          //声明数据源和连接对象
          DataSource dataSource;
          Connection conn=null;
          //校验输入
          if(username.equals("")){
          ActionError error=new ActionError("error.missing.username");
          errors.add(ActionErrors.GLOBAL_ERROR,error);
          }
          if(password.equals("")){
          ActionError error=new ActionError("error.missing.password");
          errors.add(ActionErrors.GLOBAL_ERROR,error);
          }
          //调用业务逻辑
         if(errors.size()==0){
         String validated = "";
         try{
            //取得数据库连接
             dataSource = getDataSource(request,"dbsource");
             conn = dataSource.getConnection();         LoginBean lb = new LoginBean(conn);
             validated = lb.validatePwd(username,password);        if(validated.equals("match")){
             //一切正常就保存用户信息并转向成功的页面
             //HttpSession session = request.getSession();
             //session.setAttribute("userForm", form);
             return mapping.findForward("success");
             }
          }
        catch(Throwable e){
            //处理可能出现的错误
            e.printStackTrace();
            ActionError error=new ActionError(e.getMessage());
            errors.add(ActionErrors.GLOBAL_ERROR,error);
        }
      }      //如出错就转向输入页面,并显示相应的错误信息
          saveErrors(request, errors);
          return new ActionForward(mapping.getInput());      }
    }
      

  3.   

    javax.servlet.ServletException: Exception initializing application data source dataSource
     at org.apache.struts.action.ActionServlet.initDataSources(ActionServlet.java:1081)
     at org.apache.struts.action.ActionServlet.init(ActionServlet.java:472)
     at javax.servlet.GenericServlet.init(GenericServlet.java:256)
     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:918)
     at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:655)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
     at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
     at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
     at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
     at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
     at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
     at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
     at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
     at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
     at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
     at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
     at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
     at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
     at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
     at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
     at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
     at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
     at java.lang.Thread.run(Thread.java:536)
    为什么啊?急
      

  4.   

    实际上你在配置文件中设的每个属性与值是必须所对应的key类里的属性和方法一一对应的。我觉得你犯了两个错误
    1、<data-source key="dataSource">必须要写类的全名,即把包名也带上
    2、每一种数据源类的属性是不同的,你一定要根据所对应的类设置属性名和初始值
    <data-sources>
    <!-- configuration for commons BasicDataSource -->
    <data-source type="org.apache.commons.dbcp.BasicDataSource">
        <set-property
          property="driverClassName"
          value="org.postgresql.Driver" />
        <set-property
          property="url"
          value="jdbc:postgresql://localhost/mydatabase" />
        <set-property
          property="username"
          value="me" />
        <set-property
          property="password"
          value="test" />
        <set-property
          property="maxActive"
          value="10" />
        <set-property
          property="maxWait"
          value="5000" />
        <set-property
          property="defaultAutoCommit"
          value="false" />
        <set-property
          property="defaultReadOnly"
          value="false" />
        <set-property
          property="validationQuery"
          value="SELECT COUNT(*) FROM et" />
    </data-source>
    </data-sources>http://struts.apache.org/faqs/database.html
      

  5.   

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">
    <struts-config>
      <data-sources>
        <data-source key="dataSource" type="org.apache.commons.dbcp.BasicDataSource">
          <set-property value="false" property="autoCommit" />
          <set-property value="Database for progame" property="description" />
          <set-property value="com.microsoft.jdbc.sqlserver.SQLServerDriver" property="driveClass" />
          <set-property value="5" property="maxCount" />
          <set-property value="1" property="minCount" />
          <set-property value="jdbc:microsoft:sqlserver://t13:1433;DatabaseName=qqq" property="url" />
          <set-property value="sa" property="user" />
          <set-property value="" property="password" />
        </data-source>
      </data-sources>
      <action-mappings>
        <action type="firstexercise.NationAddAction" path="/nationAddAction">
          <forward name="ok" path="/Ok.jsp" />
        </action>
      </action-mappings>
    </struts-config>
    按照上边说的,还是错误啊,我就不知道为什么啊 急杀人
      

  6.   

    错了你照着我给你的一个一个的对照写如果你用org.apache.commons.dbcp.BasicDataSource这个数据源的类,根本就没有这个属性 <set-property value="Database for progame" property="description" />你细心一点,把心静下来
      

  7.   

    <data-source type="org.apache.commons.dbcp.BasicDataSource">
             <set-property property="maxActive" value="10" />
             <set-property property="username" value="sa" />
             <set-property property="password" value="sa" />
             <set-property property="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />
             <set-property property="url" value="jdbc:microsoft:sqlserver://localhost:1433;databaseName=qqq" />
             <set-property property="defaultAutoCommit" value="false" />
             <set-property property="defaultReadOnly" value="false" />
             <set-property property="maxWait" value="1000" />
          </data-source>
      

  8.   

    如果这样还不行,你先看一下帐号、密码,数据库名
    如果还是不行,看一下是否有commons-dbcp-1.2.1.jar、msbase.jar、mssqlserver.jar、msutil.jar这几个jar文件
      

  9.   

    我也有个你这样的问题,我的<datasource>....</datasource>中配置是正确的,首先在Tomcat5.0.29不正确后,加上struts-legacy.jar 包后就可以了,但我回到家里用的是Tomcat5.0.30,启动Tomcat时控制台上但出现连接错误了!我也就不知道是什么回事!
    你可以看看这个贴子:http://community.csdn.net/Expert/topic/3661/3661109.xml?temp=.2120325希望能对你有点帮助
      

  10.   

    <set-property value="sa" property="user" /> 好象得用<set-property value="sa" property="username" />
      

  11.   

    javax.servlet.ServletException: Servlet.init() for servlet action threw exception
     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:946)
    又是这种错误
      

  12.   

    不知道了,看你的错误信息好象需要的jar文件都加了
    最后一点,你的SQLSERVER安装时是以混合模式安装的吗?
    如果你确定是以混合模式安装的我也没办法了
      

  13.   

    还是数据源初始化的问题啊
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">
    <struts-config>
      <data-sources>
        <data-source type="org.apache.commons.dbcp.BasicDataSource" key="dataSource">
          <set-property value="false" property="autoCommit" />
          <set-property value="com.microsoft.jdbc.sqlserver.SQLServerDriver" property="driverClass" />
          <set-property value="jdbc:microsoft:sqlserver://t13:1433;DatabaseName=qqq" property="url" />
          <set-property value="5" property="maxCount" />
          <set-property value="1" property="minCount" />
          <set-property value="sa" property="username" />
          <set-property value="" property="password" />
        </data-source>
      </data-sources>
      <action-mappings>
        <action type="firstexercise.NationAddAction" path="/nationAddAction">
          <forward name="ok" path="/Ok.jsp" />
        </action>
      </action-mappings>
    </struts-config>