簡體   English   中英

將.war文件轉換為正確的版本

[英]Convert a .war file into a right version

我必須使用JBoss 7編譯Java EE項目。當我使用JBoss 7運行時,Netbeans將創建一個.war文件。 由於我的環境問題,我必須在Tomcat6上將此.war文件部署在虛擬機上。

問題是創建的.war與tomcat6不兼容。

我試圖在虛擬機上安裝tomcat7,但是還有其他問題,例如“ NoClassDefFoundError”。

因此,我正在尋找一種將.war轉換為正確版本的方法。 我該怎么辦?

沒有任何標准方法可以實現此目標(“轉換.war文件”),因為Tomcat6(開箱即用)不是經過JEE認證的應用服務器-僅僅是一個Web容器

Apache Tomcat,一個Servlet和Java Server Pages容器

因此,作為真正的JEE應用程序服務器一部分的某些庫不會被捆綁並存在於普通Tomcat安裝的/lib文件夾中,例如JTA,JPA,CDI,JAX-RS,JAX-WS的實現...

但是,您可以嘗試下載增強的Tomcat,即TomEE ,因為它是最新版本-已通過JEE6認證(並且具有多個變體 ):

Apache TomEE,發音為“ Tommy”,是經過全Apache Java EE 6 Web Profile認證的堆棧,其中Apache Tomcat是頭等大事。

這可能是您的遷移方法的一個很好的解決方案,因為JBoss7也符合JEE6級別。

下載TomEE之后,您可以嘗試在其中部署應用程序。 但是,您應該提供未找到的完整堆棧跟蹤信息或至少提供Class(包括完全合格的程序包),因為JBoss 7中可能存在某些第三方庫,這些庫在TomEE或其他應用程序服務器中不存在。

希望能幫助到你。

War Files本身沒有版本。

它們自身的Java類具有Java版本(例如,如果它們使用Java 7或Java 8)。 如果您的Tomcat在Java 6上運行並且使用Java 7編譯,則會收到UnsupportedClassVersionError 在這種情況下,您必須更新Tomcat的Java版本或使用Java 6編譯代碼(並刪除Java7功能)。

除此之外,您還可能使用的是JBoss 7的功能,而這些功能在Tomcat 6中不可用(例如,您在App中引用Servlet 3.0,但Tomcat不支持該版本)。 要使其在這種情況下起作用,您必須刪除Tomcat不支持的所有功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM