WSO2应用程序服务器5.3.0:java.lang.IllegalArgumentException:将应用程序部署为ROOT上下文时出现负时错误

时间:2016-03-19 11:43:08

标签: jsp web-applications wso2 wso2as

当我尝试将一个简单的测试war文件作为WSO2 Application Server版本5.3.0的ROOT上下文运行时,我收到以下错误:

  

[2016-03-19 17:24:00,177]错误   {org.apache.catalina.core.StandardWrapperValve} - Servlet.service()   对于带有路径[/]的上下文中的servlet [jsp]抛出异常[无法执行   具有根本原因的JSP编译类   java.lang.IllegalArgumentException:负时间   java.io.File.setLastModified(File.java:1421)at   org.apache.jasper.compiler.Compiler.compile(Compiler.java:377)at   org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)at   org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)at   org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:657)     在   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)     在   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)     在org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)     在javax.servlet.http.HttpServlet.service(HttpServlet.java:727)at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)     在   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)     在   org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)     在   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)     在   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)     在   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)     在   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)     在   org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)     在   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)     在   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)     在   org.wso2.carbon.statistics.webapp.RequestIntercepterValve.invoke(RequestIntercepterValve.java:47)     在   org.wso2.carbon.bam.webapp.stat.publisher.WebAppStatisticPublisherValve.invoke(WebAppStatisticPublisherValve.java:104)     在   org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)     在   org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve $ 1.invoke(CarbonTomcatValve.java:47)     在   org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57)     在   org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)     在   org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)     在   org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159)     在   org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)     在   org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)     在   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)     在   org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)     在   org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)     在   org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:611)     在   org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1739)     在   org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.run(NioEndpoint.java:1698)     在   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:615)     在   org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)     在java.lang.Thread.run(Thread.java:745)

如果我运行与任何其他上下文路径相同的应用程序,例如/ testurl它完美地运作。那么只有在尝试将其作为ROOT运行时,可能导致上述负时间错误的原因是什么?

PS:要以root身份运行我的应用程序,我做了两件事:

  1. 将所有其他应用移出webapps目录并重命名为my     战争到ROOT.war
  2. 在./repository/conf/carbon.xml我设置     WebContextRoot到<WebContextRoot>/carbon</WebContextRoot>所以现在     默认碳管理应用程序可在/ carbon路径上使用。     (顺便说一下。)
  3. 此测试应用只有一个index.jsp文件,其中包含以下内容:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page import="java.util.*"%>
    
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Test headers</title>
    </head>
    <body>
    <%
        out.println("request.getServerName()="+request.getServerName()+"</br>");
        String[] serverurl= request.getServerName().split("\\.");   
        String clientcode=serverurl[0];
        out.println("clientcode="+clientcode+"</br>");
    
        Enumeration headerNames = request.getHeaderNames();
        while (headerNames.hasMoreElements()) {
            String key = (String) headerNames.nextElement();
            String value = request.getHeader(key);
            out.println(key+"="+value+"</br>");
        }
    %>
    </body>
    </html>
    

    我看过这个Negative time from JSP compiler并不适用于我的情况。在我的测试战争的路径中没有任何空格,句号或连字符。 这可能是由trailing slash in application context引起的,但如果是,我无法弄清楚可能导致它的原因。

    如何解决这个负面时间问题?

0 个答案:

没有答案