我的Tomcat启动正常,但当我在IE中对"http://127.0.0.1:8080/HQ/myportal/HQ/theme/login.jsp?canlogin=true"进行访问时,老是报以下错误:
javax.servlet.ServletException: Cannot find message resources under key page
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
at org.apache.jsp.theme.login_jsp._jspService(login_jsp.java:278)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:696)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
at com.mdcl.mocha.bpm.portal.container.config.VirtualServerManager.D(Unknown Source)
at com.mdcl.mocha.bpm.portal.container.config.VirtualServerManager.service(Unknown Source)
at com.mdcl.mocha.bpm.portal.container.servlet.ServletController.service(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.mdcl.mocha.bpm.webcommons.filter.UserinfoFilter.doFilter(UserinfoFilter.java:140)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:534)
我已经检查了,所有的资源文件都在tomcat下啊。

解决方案 »

  1.   

    com.mdcl.mocha.bpm.portal.container.config.VirtualServerManager.D(Unknown Source) 
    at com.mdcl.mocha.bpm.portal.container.config.VirtualServerManager.service(Unknown Source) 
    at com.mdcl.mocha.bpm.portal.container.servlet.ServletController.service(Unknown Source) at com.mdcl.mocha.bpm.webcommons.filter.UserinfoFilter.doFilter(UserinfoFilter.java:140) 
    这是你的程序吗?
    看看相关的行,贴你的jsp看看
      

  2.   

    下面是login.jsp,上面的错误是因为此页面上<bean:message key='admin.page.title' bundle='page'/>中的 key引起的,老是报找不到资源文件中的key,但我的资源文件中有啊,而且也在tomcat目录下。谢谢各位的回复!
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ page import="com.mdcl.mocha.bpm.webcommons.constant.ISessionAttributeConstant"%>
    <%@ taglib prefix="bpm-tags"
    uri="http://www.mdcl.com.cn/taglibs/bpm-mvc-tags"%>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%
    String path = request.getContextPath();
    %>
    <%
    /*********************add by taojiang at 2009-03-05****begin********/
    //普通用户需通过portal登录后才能访问BPM,否则重定向至portal登陆页
    String portalLoginUrl = "http://emisdev.hq.cmcc";
    String canlogin=(String)request.getParameter("canlogin");
    if("".equals(canlogin)||canlogin==null){
        response.sendRedirect(portalLoginUrl);
    }
    /*********************add by taojiang at 2009-03-05*****end********/
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <HTML xmlns="http://www.w3.org/1999/xhtml">
    <bean:message key='admin.page.title' bundle='page'/>
    <HEAD><%
    javax.servlet.http.Cookie[] t_cookies = request.getCookies();
    String t_jsessionid = "";
    if(t_cookies != null){
    for(int i = 0; i < t_cookies.length; i++) {
     javax.servlet.http.Cookie t_cookie = t_cookies[i];
     if("JSESSIONID".equals(t_cookie.getName())) {
      t_jsessionid = t_cookie.getValue();
      break;
     }
    }
    }
    %>
    <META HTTP-EQUIV="Set-Cookie" CONTENT="JSESSIONID=<%=t_jsessionid%>;expires=Fri, 31 Dec 1999 23:59:59 GMT;path=/">
    <LINK href="<%=path%>/css/css.css" type=text/css rel=stylesheet>
    <script src="<%=path%>/js/tools.js"></script>
    <script src="<%=path%>/js/MD5.js"></script>
    <script language="javascript">
    function login(){
    var password = document.getElementById('ssopassword');
    password.value = MD5(password.value,32);
    document.loginForm.submit();
    return false;
    }
    function reset(){
    document.loginForm.reset();
    return false;
    }
    window.onload = function () {
    if(top.location != self.location) {
    top.location=self.location;
    }
    }
    </script>
    </HEAD>
    <BODY class="loginpage">
    <form name="loginForm" id="loginForm"
    action="<bpm-tags:actionUrl url="/login" windowModel="false"/>"
    method="post" AutoComplete="off">
      <table width="100%" height="100%"  border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td height="520" align="center" valign="middle">
              <table width="641" height="365" border="0" cellpadding="0" cellspacing="0">
                <tr>
                  <td height="119" colspan="2"><img src="<%=path%>/images/common/login_01.gif" width="641" height="119" /></td>
                </tr>
                <tr>
                  <td height="47" colspan="2"><img src="<%=path%>/images/common/login_02.jpg" width="641" height="47" /></td>
                </tr>
                <tr>
                  <td width="406" height="110" valign="top"><img src="<%=path%>/images/common/login_03.jpg" width="406" height="110" /></td>
                  <td width="235" height="110" align="left" background="<%=path%>/images/common/login_04.jpg">
              <table width="200" border="0" cellpadding="4" cellspacing="0">
                    <tr>
                      <td width="30%" height="26" align="left"  class="txt-indigo">用户名:</td>
                      <td width="70%" align="left" class="txt-indigo"><input id="ssousername" name="ssousername" type="text" size="17" class="login" maxlength="64"
                       <%
    String ssousername = request.getParameter("ssousername");
    if(ssousername != null && !"".equals(ssousername)){
    %> value="<%=ssousername%>"
    <%
    }
    %>
                      /></td>
                    </tr>
                    <tr>
                      <td width="30%" height="26" align="left" class="txt-indigo">密&nbsp;&nbsp;&nbsp;&nbsp;码:</td>
                      <td width="70%" height="26" align="left" class="txt-indigo"><input id="ssopassword" name="ssopassword" type="password" size="17" class="login" maxlength="16" value="mccbpm"/></td>
                    </tr>
                    <tr>
                      <td height="34" colspan="2" valign="top"><a href="#" onclick="login()"><img src="<%=path%>/images/button/b-login-login.gif" width="75" height="23" border="0" /></a> &nbsp;&nbsp;<a href="#" onclick="reset()"><img src="<%=path%>/images/button/b-login-reset.gif" width="75" height="23" border="0"/></a></td>
                    </tr>
                  </table>
                </td>
                </tr>
                <tr valign="top">
                  <td height="89" colspan="2"><img src="<%=path%>/images/common/login_05.gif" width="641" height="89" /></td>
                </tr>
              </table>          </td>
        </tr>
      </table>
    </form>
    <script language="javascript">
    window.document.onkeydown = function (){
    if (event.keyCode == 13)
        {
            event.returnValue=false;
            event.cancel = true;
            login();
        }
    }
    window.onload = function (){
    document.getElementById("ssousername").focus();
    }
    var g_login_tools = new Tools();
    <%
    String errorCode = null;
    errorCode = (String)request.getAttribute("errorCode");
    if("0".equals(errorCode)) {
    %>
    g_login_tools.showAlert('mocha.bpm.login.error');
    <%
    } else if("1".equals(errorCode)) {
    %>
    g_login_tools.showAlert('mocha.bpm.login.invalidate');
    <%
    } else if("2".equals(errorCode)) {
    Exception ex = (Exception)request.getAttribute("PORTAL_LOGIN_ERROR");
    request.getSession().setAttribute(ISessionAttributeConstant.LICENSE_EXCEPTION_KEY, ex);
    %>
    g_login_tools.showError('mocha.bpm.common.licenseover','','','<%=path%>/jsp/commons/error.jsp');
    <%
    } else if("3".equals(errorCode)) {
    Exception ex = (Exception)request.getAttribute("PORTAL_LOGIN_ERROR");
    request.getSession().setAttribute(ISessionAttributeConstant.LICENSE_EXCEPTION_KEY, ex);
    %>
    g_login_tools.showError('mocha.bpm.common.licenseNotFound','','','<%=path%>/jsp/commons/error.jsp');
    <%
    } else if("4".equals(errorCode)) {
    Exception ex = (Exception)request.getAttribute("PORTAL_LOGIN_ERROR");
    request.getSession().setAttribute(ISessionAttributeConstant.LICENSE_EXCEPTION_KEY, ex);
    %>
    g_login_tools.showError('mocha.bpm.login.system.error','','','<%=path%>/jsp/commons/error.jsp');
    <%
    } else if("5".equals(errorCode)) {
    Exception ex = (Exception)request.getAttribute("PORTAL_LOGIN_ERROR");
    request.getSession().setAttribute(ISessionAttributeConstant.LICENSE_EXCEPTION_KEY, ex);
    %>
    g_login_tools.showError('mocha.bpm.login.accountdisable.error','','','<%=path%>/jsp/commons/error.jsp');
    <%
    }
    %>
    </script>
    </BODY>
    </HTML>
      

  3.   

    应该是servlet配置问题吧 检查你的路径配置
      

  4.   

    谢谢各位的热心帮助,这个问题我搞了两天,今天下午终于解决了,在解决过程中出现以下问题:
    1、通过检查发现没有编译,也就是在tomcat下没有.class文件;
    2、在检查过程中,发现资源文件没有被加载,每次重新加载的时候都加载的是旧的文件;
    3、我把所有的项目通过SVN还原,然后再从SVN上更新,在本地重新搭建了开发环境,问题解决.
    再次感谢各位的帮助。谢谢!!!