信息如下:
C:\Borland\JBuilder2006\jdk1.5\bin\javaw -classpath "C:\Borland\JBuilder2006\thirdparty\jakarta-tomcat-5.5.9\bin\bootstrap.jar;C:\Borland\JBuilder2006\jdk1.5\lib\tools.jar"  "-Dcatalina.home=C:/Borland/JBuilder2006/thirdparty/jakarta-tomcat-5.5.9"  org.apache.catalina.startup.Bootstrap -config E:\java\jb2005_chappter15\Tomcat\conf\server8080.xml start 
2006-3-20 21:49:07 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2006-3-20 21:49:07 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 547 ms
2006-3-20 21:49:07 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2006-3-20 21:49:07 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/5.5.9
2006-3-20 21:49:07 org.apache.catalina.core.StandardHost start
信息: XML validation disabled
java.io.FileNotFoundException: D:\serverLog\log_2006_3.xls (系统找不到指定的路径。)
at java.io.FileOutputStream.openAppend(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:177)
at java.io.FileWriter.<init>(FileWriter.java:90)
at bookstore.servlet.SrvStartListener.contextInitialized(SrvStartListener.java:22)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3669)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4104)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:683)
at org.apache.catalina.startup.Catalina.start(Catalina.java:537)
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:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
2006-3-20 21:49:08 org.apache.catalina.realm.JAASRealm setContainer
信息: Set JAAS app name Catalina
2006-3-20 21:49:08 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2006-3-20 21:49:08 org.apache.catalina.startup.Catalina start
信息: Server startup in 1734 ms

解决方案 »

  1.   

    diy8187(雞狗豬驢),加我QQ呀,我贴图给你看,帮帮忙
      

  2.   

    java.io.FileNotFoundException: D:\serverLog\log_2006_3.xls (系统找不到指定的路径。)怎么会找一张EXCEL表??
      

  3.   

    谁给我一个简单的struts登录功能,学习学习。谢谢了。
      

  4.   

    还有你的Struts_config.xml 源码
      

  5.   

    java.io.FileNotFoundException: D:\serverLog\log_2006_3.xls (系统找不到指定的路径。)
    at java.io.FileOutputStream.openAppend(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:177)
    你的环境中是不是配置log4j的日志输出了?建议先把环境清理一下,再试一试
      

  6.   

    我的源代码如下:
    login.jsp
    <%@page contentType="text/html; charset=GB2312" errorPage="error.jsp"%>
    <html>
    <head>
    <title>login</title>
    </head>
    <body bgcolor="#ffffff">
    <form name="form1" method="post" action="/WebModule/loginAction.do">  用户名:
    <input type="text" name="userId"/>
      密  码:
    <input name="password" type="password">
    <input type="submit" name="Submit" value="登录">
    </form>
    </body>
    </html>
    error.jsp
    <%@page contentType="text/html; charset=GB2312" isErrorPage="true" %>
    <html>
    <head>
    <title>error</title>
    </head>
    <body bgcolor="#ffffff">抱歉,系统发生异常,点击<a href="login.jsp">这儿</a>返回首页
    </body>
    </html>
    fail.jsp
    <%@ page contentType="text/html; charset=GB2312" errorPage="error.jsp" %>
    <html>
    <head>
    <title>
    fail
    </title>
    </head>
    <body bgcolor="#ffffff">
       您输入的密码不正确,点击<a href="login.jsp">这儿</a>返回登录页面。
    </body>
    </html>
    welcom.jsp
    <%@page contentType="text/html; charset=GB2312"%>
    <html>
    <head>
    <title>welcome</title>
    </head>
    <jsp:useBean id="ses_userBean" scope="session" class="bookstore.User"/><body bgcolor="#ffffff">您是
    <%=ses_userBean.getUserName()%>,欢迎登录。<br>
    </body>
    </html>
    loginAction.java
    package bookstore;import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForm;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.Action;import java.sql.*;public class loginAction extends Action {
        public ActionForward execute(ActionMapping mapping, ActionForm form,
                                     HttpServletRequest request,
                                     HttpServletResponse response) {
            UserActionForm userActionForm = (UserActionForm) form;
            Connection conn=null;
            try{
                conn=DBConnection.getConnection();
                PreparedStatement pStat = conn.prepareStatement(
                    "select username from [user] where username=? and nickname = ?");
                pStat.setString(1, userActionForm.getUserId());
                pStat.setString(2, userActionForm.getPassword());
                ResultSet rs = pStat.executeQuery();
                if (rs.next())
                { //密码正确
                  userActionForm.setUserName(rs.getString(1));
                  request.getSession().setAttribute("ses_userBean", userActionForm);
                  return mapping.findForward("success");
                }
              }
              catch (SQLException se)
              {
                se.printStackTrace();
                return mapping.findForward("error");//程序发生异常,转向error.jsp出口
              }
              finally
              {
                try
                {
                  if (conn != null)
                  {
                    conn.close();
                  }
                }
                catch (SQLException ex)
                {
                  ex.printStackTrace();
                  return mapping.findForward("error");//程序发生异常,转向error.jsp出口
                }
              }
              return mapping.findForward("fail");
        }
    }User.java
    package bookstore;import javax.servlet.http.HttpSessionBindingListener;
    import javax.servlet.http.HttpSessionBindingEvent;
    import java.text.SimpleDateFormat;
    import java.util.Date;public class User
    {
        private String userId;
        private String password;
        private String userName;    public String getPassword()
        {
            return password;
        }    public String getUserId()
        {
            return userId;
        }    public String getUserName()
        {
            return userName;
        }    public void setPassword(String password)
        {
            this.password = password;
        }    public void setUserId(String userId)
        {
            this.userId = userId;
        }    public void setUserName(String userName)
        {
            this.userName = userName;
        }    /**
         * 获取当前时间字串,以yyyyMMddHHmmss格式返回,如20050505010101
         * @return String
         */
        private static String getCurrDatetimeStr()
        {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
            return sdf.format(new Date());
        }
    }
      

  7.   

    UserActionForm.java
    package bookstore;import java.sql.*;
    import java.text.*;
    import java.util.Date.*;
    import javax.servlet.http.*;
    import org.apache.struts.action.*;
    import java.util.Date;public class UserActionForm extends ActionForm {
        private String userId;
        private String password;
        private String userName;
        private String loginDatetime;    public String getPassword()
        {
            return password;
        }    public String getUserId()
        {
            return userId;
        }    public String getUserName()
        {
            return userName;
        }    public void setPassword(String password)
        {
            this.password = password;
        }    public void setUserId(String userId)
        {
            this.userId = userId;
        }    public void setUserName(String userName)
        {
            this.userName = userName;
        }    /**
         * 获取当前时间字串,以yyyyMMddHHmmss格式返回,如20050505010101
         * @return String
         */
        private static String getCurrDatetimeStr()
        {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
            return sdf.format(new Date());
        }    public void reset(ActionMapping actionMapping,
                          HttpServletRequest servletRequest) {
            this.userId=null;
            this.userName=null;
            this.password=null;
            this.loginDatetime=null;
        }
    }
    DBConnection.java
    package bookstore;import java.sql.*;
    import java.util.Properties;public class DBConnection {
        public static Connection getConnection()
        {
            Connection con=null;
            String CLASSFORNAME="com.microsoft.jdbc.sqlserver.SQLServerDriver";
            String SERVANDDB="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=blog_zt";
            String USER="sa";
            String PWD="sa";
            try
            {            Class.forName(CLASSFORNAME);
                        con = DriverManager.getConnection(SERVANDDB,USER,PWD);
                }
                catch(Exception e)
                {
                        e.printStackTrace();
                }
                return con;
            }
    }struts-config.xml
    <?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>
      <form-beans>
        <form-bean name="userActionForm" type="bookstore.UserActionForm" />
      </form-beans>
      <action-mappings>
        <action name="userActionForm" path="/loginAction" type="bookstore.loginAction">
          <forward name="success" path="/welcome.jsp" />
          <forward name="fail" path="/fail.jsp" />
          <forward name="error" path="/error.jsp" />
        </action>
      </action-mappings>
      <message-resources parameter="ApplicationResources" />
      <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
      </plug-in>
      <plug-in className="org.apache.struts.tiles.TilesPlugin">
        <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
      </plug-in>
    </struts-config>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" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
      <display-name>WebModule</display-name>
      <jsp-config>
        <taglib>
          <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
          <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
        </taglib>
        <taglib>
          <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
          <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
        </taglib>
        <taglib>
          <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
          <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
        </taglib>
        <taglib>
          <taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
          <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
        </taglib>
        <taglib>
          <taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
          <taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
        </taglib>
      </jsp-config>
      <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>2</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
    </web-app>
      

  8.   

    现在提交后是这个错误提示:
    Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: bookstore.UserActionForm
     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370)
     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
     org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)
     org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)
     org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:316)
     org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
     org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
     org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
     javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause java.lang.ClassCastException: bookstore.UserActionForm
     org.apache.jsp.welcome_jsp._jspService(org.apache.jsp.welcome_jsp:49)
     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
     org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)
     org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)
     org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:316)
     org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
     org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
     org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
     javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs.
      

  9.   

    你把struts-config.xml中的
    <message-resources parameter="ApplicationResources" />
      <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
      </plug-in>
    去掉,试一下
      

  10.   

    我的周围没有搞这方面的,只有我一个人呀,大哥们。
    发一个给我吧,[email protected],jb2005或者jb2006的,
    都一周了。我也查好多资料了,看不出是什么问题呀!!!!!~
      

  11.   

    如果需要的話晚上加我QQ:82808123(19:00-23:00)
    我可以提供一點struts學習資料和幾個例子
      

  12.   

    jasonden(驛站) 晚上找你,谢谢,是Jb的吗?我查了好多资料了,不知道是什么错误
      

  13.   

    jasonden(驛站) ,晚上我加你,记得波。
      

  14.   

    public final class ValidateSessionTag extends TagSupput
    {
    Pririn}
      

  15.   

    看异常信息中的这句
    root cause java.lang.ClassCastException: bookstore.UserActionForm
     org.apache.jsp.welcome_jsp._jspService(org.apache.jsp.welcome_jsp:49)显然问题出现在welcome.jsp
    找一下,发现了
    <jsp:useBean id="ses_userBean" scope="session" class="bookstore.User"/>
    这个bean的类型是bookstore.User
    再找找LoginAction,发现
    UserActionForm userActionForm = (UserActionForm) form;
    ...
    request.getSession().setAttribute("ses_userBean", userActionForm);看懂了吧?
    Session中名称为"ses_userBean"的对象,你保存的是UserActionForm类型,而你用的时候当做User类型来用。这就是错误的原因。先发现这一个错,你改了要有错再把错误信息贴上来
      

  16.   

    doordie(实践),你的意思是类型用错了,那我应该是在UserActionForm.java里做个类型的转换,是吗?还是在welcome.jsp用UserActionForm这个类。
    <jsp:useBean id="ses_userBean" scope="session" class="bookstore.UserActionForm"/>
    这样对吗?
      

  17.   

    我试了第二种方法,结果是到了welcome.jsp,但是得到的是空值,
    结果如下:
    您是 null,欢迎登录。
      

  18.   

    你怎么弄得,用什么方法,给我看看呀
    我的结果是得不到用户名(userid),是空的(null)。我试了第二种方法,结果是到了welcome.jsp,但是得到的是空值,
    结果如下:
    您是 null,欢迎登录。
      

  19.   

    我试了终于成功了,谢谢!还有一个问题,请看fail.jsp
    假如我用<jsp:useBean id="ses_userBean" scope="session" class="bookstore.UserActionForm"/>输出登录时所填的用户名和密码?为什么都是null(空值)呢?
    fail.jsp
    </title>
    </head>
    <jsp:useBean id="ses_userBean" scope="session" class="bookstore.UserActionForm"/>
    <body bgcolor="#ffffff">
    你输入的用户名是:<%=ses_userBean.getUserid()%>,
    密码是:<%=ses_userBean.getPassword()%>
       您输入的密码不正确,点击<a href="login.jsp">这儿</a>返回登录页面。
    </body>
    </html>
      

  20.   

    是不是UserActionForm把值传出之后,在UserActionForm里就已经把值销毁了呢?
      

  21.   

    聪明啊,UserActionForm在给Actionform使用过后,就由structs中的某个组件调用了reset方法,所以你得到的就是null。
    所以啊,你在action里面不应该把UserActionForm放到Session里面,而是应该创建一个User对象放进去
      

  22.   

    那么welcome.jsp用<jsp:useBean id="ses_userBean" scope="session" class="bookstore.User"/>为什么有可以得到userid的值呢?
      

  23.   

    to:doordie(实践) 
    那么welcome.jsp用<jsp:useBean id="ses_userBean" scope="session" class="bookstore.UserActionForm"/>为什么有可以得到userid的值呢?
      

  24.   

    to:doordie(实践) 
    那么welcome.jsp用<jsp:useBean id="ses_userBean" scope="session" class="bookstore.UserActionForm"/>为什么有可以得到userid的值呢?