Я генерирую исполняемую войну с tomcat7-maven-plugin:exec-war-only
. Плагин конфигурация выглядит следующим образом:«Отрицательное время» при попытке запустить WAR с помощью tomcat7-maven-plugin: exec-war-only
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<warFile>${project.build.outputDirectory}/${project.build.finalName}.war</warFile>
<mode>both</mode>
<enableNaming>true</enableNaming>
</configuration>
<executions>
<execution>
<goals>
<goal>exec-war-only</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
Затем tomcat7:run-war
разворачивает приложение, и оно работает отлично. Если я запустил mvn package
приложение jar создано. Если я затем запустил java -jar app.jar
, он успешно развернут с Tomcat 7.0.37. Но тогда он не может скомпилировать JSP. Он говорит:
2013-09-21 00:38:05 JstlView [DEBUG] Forwarding to resource [/jsp/login.jsp] in InternalResourceView 'login'
Sep 21, 2013 12:38:05 AM org.apache.jasper.compiler.TldLocationsCache tldScanJar
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Sep 21, 2013 12:38:05 AM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.IllegalArgumentException: Negative time
at java.io.File.setLastModified(Unknown Source)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:376)
Как вы видите, у меня нет пробелов и специальных символов в имени JSP. Я также попытался поместить app.jar в корень диска, чтобы исключить любые возможные символы в имени папки. Эффект тот же.
UPD. Я использовал удаленную отладку, чтобы узнать, что произойдет. И линия Long jspLastModified = ctxt.getLastModified(ctxt.getJspFile());
возвращает -1
. В нем ctxt.getJspFile()
возвращается "/jsp/login.jsp"
.
это дублируется из Является ли: http://stackoverflow.com/questions/8583853/negative-time-from-jsp-compiler? – porfiriopartida
Исключением является то же самое, но причина не та. Эта проблема была связана со специальными символами в имени файла и была исправлена в Tomcat 7.0.27. У меня нет специальных символов и есть Tomcat 7.0.37. – AlexZam
Просто быстрый вопрос: бы вы случайно не жили в часовом поясе к востоку от UTC? – fvu