2015-07-04 33 views
0

我有一些问题让应用程序工作,它似乎是Apache Tile的问题。通过STS部署到tomcat和手动部署是否有区别?

奇怪的是,我的问题的基础是,当我通过STS部署到使用相同java版本的2个tomcats时,应用程序可以工作,但是当我使用maven构建的war文件(相同版本的java tomcat正在使用),然后将它们手动部署到应用程序不工作的任一个tomcat。

我与Maven构建通过STS使用jdk1.7.0_09

我通过部署到STS到Tomcat 7.0.32使用jdk1.7.0_09 - 这个工程

手动部署到Tomcat的webapps Tomcat的7.0 0.32使用jdk1.7.0_09 - 错误:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.tiles.request.render.CannotRenderException: ServletException including path '/WEB-INF/tiles/layout.jsp'. 

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 1 in the generated java file 
The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files 

我通过部署使用jdk1.7.0_09到STS到Tomcat 7.0.53 - 这工作

部署男人ually到tomcat的webapps的Tomcat 7.0.53使用jdk1.7.0_09 - 错误:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.tiles.request.render.CannotRenderException: ServletException including path '/WEB-INF/tiles/layout.jsp'. 

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 1 in the generated java file 
The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files 

我不明白为什么当我把它部署到通过Eclipse的雄猫它的工作原理?

最后,当我尝试部署到测试服务器(类仍建有jdk1.7.0_09),这是设置使用:

tomcat的8.2.0.23 jdk1.8.0_11

我得到一个不同的错误(500内部服务器错误)试图解决瓷砖查看:

javax.servlet.ServletException: Could not resolve view with name 'base/dashboard/view' in servlet with name 'appServlet' 

我非常卡住就这个问题和它的我花了一段时间才到我在哪里,但现在我似乎已经完全打砖墙,我只是不明白应用程序可以如何在通过STS部署时在tomcat中工作,但在手动部署到tomcat webapps时无法工作。

任何人都可以帮助揭露这里发生了什么?

感谢

回答

0

为了防止这种情况对任何人都有用,我通过将tile的版本从3.0.3升级到3.0.5来解决这个问题。

1

显然,答案是“有”,但这是没有帮助的。

望着错误信息,证据是:

  • 当Tomcat编译JSP的问题正在发生,

  • 问题是某种形式的类路径问题。

现在奇怪的是,所谓的失踪班的名字是java.util.Map$Entry;即标准的Map.Entry接口。该类位于标准Java库中,因此应为位于JSP编译器的类路径中。

猜测:STS部署和手动部署之间的差异可能是两件事情:

  • 这可能是STS是预编译的JSP。
  • 可能是因为STS以不同方式配置Tomcat;例如以影响Jasper的方式调整Tomcat配置。

了一些研究(谷歌),我怀疑的使用Tomcat 7的版本的初始问题的根本原因是你试图运行已编译的代码/与Java 8编译器在Tomcat 7.

TL; DR是Tomcat 7和Java 8不能很好地协同工作。

参考:

的最后一个问题( “无法解析图...”)看起来不相关的,而且可能是一个Tomcat 7 - > Tomcat的8移植问题。

+0

嗨,谢谢,我几乎得出了相同的结论,也读过这篇文章,但你确实给了我一个我刚才试过的想法。我清理了tomcat webapps,在STS中启动了它,然后我从wtpwebapps中取出了该文件夹,部署了tomcat webapps standalone,然后重新启动了tomcat,并且它可以正常工作......我不确定这意味着什么。 ..只有4小时的睡眠时间,但这肯定意味着maven正在构建什么和STS正在构建什么之间有很大的区别。我需要考虑一下。任何想法从哪里去? – berimbolo

+0

感谢您的回复,它并没有真正回答我的查询,但tbh如果你能够让你必须是通灵的,但你确实提示我采取wtp网络应用程序中的内容并尝试部署它。我终于明白了它的底部,并且它至少可以说是一个误导性的错误......不管它是tc7还是tc8,其原因都是一样的,只是它的错误是不同的。我在wtpwebapp deploy和mine之间看到的唯一区别是当用maven构建 – berimbolo

+0

一个想法是对两个安装目录树进行快照并使用“diff -r” –