2015-07-04 35 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」 –