繁体   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