在添加data-sources后,struts错误 
HTTP Status 404 - Servlet action is not availabletype Status reportmessage Servlet action is not availabledescription The requested resource (Servlet action is not available) is not available.我的data-sources 配置如下:
<data-sources>
   <data-source type="org.apache.commons.dbcp.BasicDataSource">  
   <set-property property="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
   <set-property property="url" value="jdbc:microsoft:sqlserver://10.10.30.119:1433;DatabaseName=Northwind"/>
   <set-property property="username" value="sa"/>
   <set-property property="password" value="87makv"/>
   <set-property property="maxActive" value="10"/>
   <set-property property="autoCommit" value="false"/>
   <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 employees"/>  
   </data-source>
  </data-sources>  
把data-sources删除后又能正常工作.
请问怎么解决!谢谢!

解决方案 »

  1.   

    在struts-config.xml里添加的<data-sources> 配置,把它删除后,action就能正常工作了.
    加上这一段,即使我的action没有用到数据库也不能正常工作.
      

  2.   

    com.microsoft.jdbc.sqlserver.SQLServerDriver
    MS SQL Server 打了SP3的.
      

  3.   

    没有人遇到过这种问题吗?在我的action里根本就没用到<data-sources>,action也不能正常工作,但是在struts-config.xml里删除<data-sources>,action又能正常工作了.
      

  4.   

    我想你的property属性的顺序不对,在Struts中很多属性的顺序不能错,如果错了就不能正常使用!
      

  5.   

    property 顺序是照着struts文档来设的.
      

  6.   

    是不是还要设置tomcat的datasource呢?
    我没有设.
      

  7.   

    <data-sources>
     <data-source>
      <set-property property="user" value="admin" /> 
      <set-property property="password" value="admin" /> 
      <set-property property="DefaultAutoCommit" value="false" /> 
      <set-property property="driverClass" value="oracle.jdbc.driver.OracleDriver" /> 
      <set-property property="url" value="jdbc:oracle:thin:@localhost:1521:MyDB" /> 
      </data-source>
      </data-sources>我这边的配置文件。只不过是连接Oracle的。
    然后到apache的网站上下载struts-legacy.jar放到lib目录下。
    就能够正常运行。所以楼主情考虑下面的问题:
    (1)SQL Server的URL配置有无问题
    java和这个数据库的连接总是有那么点不快乐。:)
    请到Microsoft上找最新的Driver看看。
    (2)确认datasource的各项配置,去掉一些不必要的配置项目。
    比如只使用下面的配置试试看。
    <data-sources>
       <data-source>  
       <set-property property="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
       <set-property property="url" value="jdbc:microsoft:sqlserver://10.10.30.119:1433;DatabaseName=Northwind"/>
       <set-property property="username" value="sa"/>
       <set-property property="password" value="87makv"/>
       </data-source>
      </data-sources>  
      

  8.   

    如果确定是datasource的问题的话
    1 看看包有无放齐
    2 看看你的struts版本
    有的是<set-property property="driverClassName" 有的是driverClass
      

  9.   

    缺JAR文件,看看你的数据库JAR包引了么?
      

  10.   

    mssqlserver.jar;msbase.jar;msutil.jar都放到在tomcat的下的webapps下的应用程序目录下的lib都放了的.
    <set-property property="driverClassName"struts是1.2版,用driverClass和driverClassName都不正常,看来我只有用mySQL再试试了.
      

  11.   

    一定是struts某个地方没做好,我用mySQL也不行.但是我不在struts-config.xml里设置数据源,把Action改成:
    public class UserLoginAction extends Action {
    public ActionForward execute(
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response)
    throws Exception {
    String strReason=null;
    com.pets.forms.UserLoginForm loginForm=(com.pets.forms.UserLoginForm )form;
    try
    {
    CallableStatement call=null;
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    Connection conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://10.10.30.119:1433;DatabaseName=Northwind;user=sa;Password=87makv");
    //Statement st=conn.createStatement();
    call=conn.prepareCall("{call sysCustomerLogin(?,?,?,?)}");
    call.setString(1,loginForm.getUserName());
    call.setString(2,loginForm.getPassword());
    call.registerOutParameter(3,Types.INTEGER);
    call.registerOutParameter(4,java.sql.Types.VARCHAR);
    call.execute();
    strReason=call.getString(4);
         
    }
    catch(ClassNotFoundException e) {
          
         }catch(SQLException e) {
          
         }catch(Exception e){
          
         }
       if(strReason=="access")
       return mapping.findForward("success");
       else
       return mapping.findForward("failure");
    }
    }
    运行结果是完全正确的.我的struts配置文件是:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
    <struts-config> 
       <data-sources>
       <data-source type="org.apache.commons.dbcp.BasicDataSource">  
       <set-property property="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
       <set-property property="url" value="jdbc:microsoft:sqlserver://10.10.30.119:1433;DatabaseName=Northwind"/>
       <set-property property="username" value="sa"/>
       <set-property property="password" value="87makv"/>
       <set-property property="maxActive" value="10"/>
       <set-property property="autoCommit" value="false"/>
       <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 employees"/>  
       </data-source>
      </data-sources>      
      <form-beans>
       <form-bean name="userLoginForm" type="com.pets.forms.UserLoginForm"></form-bean>
      </form-beans>
      <global-exceptions />
      <global-forwards />
      <action-mappings>
       <action path="/userLogin"
               name="userLoginForm"
               scope="request"
               input="Login.jsp"                 
               type="com.pets.actions.UserLoginAction">  
       <forward name="success" path="/MyJsp.jsp"/>
       <forward name="failure" path="/Failure.jsp"/>
       </action>
      </action-mappings>
      <message-resources parameter="application" />
    </struts-config>
    各位看看有什么错误吗?
      

  12.   

    在struts里设置数据源,还有其它地方要设置吗?我看了struts 文档,似乎没别的地方要改了.