如何在Eclipse中使用Tomcat 8.5.x和TomEE 7.x?

98
我需要在Eclipse中设置Tomcat 8.5.x服务器版本。当我尝试使用Eclipse GUI创建服务器时,在Eclipse Luna中选择最新版本的 "Apache Tomcat v8.0",并浏览到我的Tomcat 8.5.x服务器时,会收到阻止错误信息:“此目录中的Apache Tomcat安装版本为8.5.0,期望安装Tomcat 8.0版本。”同样的错误出现在尝试TomEE 7.x时,它内部基于Tomcat 8.5。在Eclipse Neon中,最新版本的选择是“Apache Tomcat v9.0”,并且给出相同的错误。甚至没有“Apache Tomcat v8.5”选项。是否有办法在Eclipse中使用Tomcat 8.5和TomEE 7.x?如何操作?
11个回答

136

您需要修补catalina.jar,因为这是WTP适配器查看的版本号。这是一个相当无用的检查,适配器应该允许您启动服务器,但是还没有人想到这一点。

多年来,每个Tomcat版本都存在这个问题。

要进行修补,可以执行以下操作:

  • cd [tomcat或tomee主目录]/lib
  • mkdir catalina
  • cd catalina/
  • unzip ../catalina.jar
  • vim org/apache/catalina/util/ServerInfo.properties

确保它看起来像以下内容(所有版本号都需要以8.0开头):

server.info=Apache Tomcat/8.0.0
server.number=8.0.0
server.built=May 11 2016 21:49:07 UTC

然后:

  • jar uf ../catalina.jar org/apache/catalina/util/ServerInfo.properties
  • cd ..
  • rm -rf catalina

5
在Tomcat 8.5.3中,catalina.jar位于lib文件夹中。 - Jon
39
对于使用 Windows 操作系统的用户,你可以直接在 JAR 文件中进行所需更改。只需使用文件归档实用程序(如 WinRar、WinZip、7zip 等)打开 _catalina.jar_,导航到 org\apache\catalina\util\ServerInfo.properties 文件,进行更改并保存(确认要更新归档文件)。 - informatik01
16
更新 你只需要更改 server.info= 行中的版本(例如 _server.info=Apache Tomcat/8.0.0_),而 server.number 可以保持不变。例如,我已经将其保持不变,如下所示:server.number=8.5.4.0。可以正常工作。 - informatik01
7
修改服务器声明为不同版本有点像黑客行为,明显应该做的是修改 Eclipse 以接受实际版本(已经完成并在其他答案中描述)。 - Periata Breatta
3
应用此黑客后,我收到了“指定了未知版本的Tomcat”错误提示。 - Atmesh Mishra
显示剩余4条评论

44
有一个Eclipse的补丁:
https://bugs.eclipse.org/bugs/attachment.cgi?id=262418&action=edit
下载此补丁并将其放置到您的Eclipse安装的plugins目录中,它将替换默认的"org.eclipse.jst.server.tomcat.core_1.1.800.v201602282129.jar"。 注意
在添加服务器运行时环境时,在Eclipse(Preferences > Server > Runtime Environments)中选择“Apache Tomcat v9.0”。 也就是说,此补丁允许您在添加Apache Tomcat v.9.0运行时环境时选择Tomcat版本9.x或Tomcat版本8.5.x。 有关更多详细信息,请参阅相关缺陷报告页面:https://bugs.eclipse.org/bugs/show_bug.cgi?id=494936

请注意,此更新现在似乎已包含在最新的Neon发行版中,因此只需选择Tomcat 9.x选项即可,无需更新插件。 - Periata Breatta
3
不支持Luna Service Release 2 (4.4.2)版本,打完补丁后我的Tomcat适配器不见了。 - adranale
我正在使用Eclipse Mars.2(4.5.2)版本,并应用了此补丁。现在,所有现有的Tomcat适配器都不见了。这是一个疯狂的补丁,我现在正在回滚它。 - Suresh

37

对于 Tomcat 8.5.x 用户

您需要 更改 Tomcat 的 /lib/catalina.jar 文件夹下的 ServerInfo.properties 文件。

ServerInfo.properties 文件包含以下代码

server.info=Apache Tomcat/8.5.4
server.number=8.5.4.0
server.built=Jul 6 2016 08:43:30 UTC

只需打开 ServerInfo.properties 文件,方法是使用 WinRAR 打开位于 Tomcat 的 lib 文件夹中的 catalina.jar 文件。

ServerInfo.properties 文件在 catalina.jar 中的位置为 /org/apache/catalina/util/ServerInfo.properties

注意:在进行这些操作之前,请 关闭 Tomcat 服务器(如果已经通过 cmd 打开),否则文件不会更改,并且 WinRAR 将显示错误。

然后更改 ServerInfo.properties 中的以下代码。

server.info=Apache Tomcat/8.0.8.5.4
server.number=8.5.4.0
server.built=Jul 6 2016 08:43:30 UTC

如果已经打开,重新启动eclipse。现在它会正常工作...

eclipse的截图


它也能在OS X上运行吗?我刚刚修补了我的catalina.jar,但不起作用(修补后没有任何变化)。我的Eclipse版本是: Eclipse Java EE IDE for Web Developers。 版本:Mars.2 Release (4.5.2) 构建ID:20160218-0600 - pidabrow
当然,它也可以在OS X上工作。最初,我只在我的Mac上进行了这些更改。之后,我计划在Windows上使用Tomcat。所以我就这样做了,并在这里发布了答案。试试吧... @piotrdab - Vinoth Vino

14

目前,Eclipse Neon服务发布已经发布。因此,如果有人仍然遇到此问题,只需前往

帮助 → 检查更新

并安装与org.eclipse.jst相关的提供的更新。


请注意,您仍然需要从服务器运行时列表中选择Apache Tomcat v9.0,这有点违反直觉,但它确实有效。 - Periata Breatta
1
我使用的是_Eclipse Java EE IDE for Web Developers_版本为_Neon.1 Release (4.6.1)_。在旧版Tomcat中,我还有v8.0v8.5v9.0可在“定义新服务器”窗口中使用。也许你使用的Eclipse版本不同。 - Cryptor
3
我确认Eclipse Neon.1 (4.6.1)添加了一个Tomcat v8.5服务器 - Ortomala Lokni
嗯..我已经通过建议的操作升级到了4.6.0版本,并且仍然没有在列表中看到Tomcat 8.5...但是Tomcat 9.0可以正常工作。真奇怪。 - Periata Breatta
Eclipse Neon.3 (4.6.3) 还包含 Tomcat v8.5 服务器。 - albciff
我曾经遇到过完全相同的问题,运行在Ubuntu 18.04、Tomcat v8.5.50和Eclipse v4.11上。这个解决方案对我来说完美地解决了问题。 - David NIWEWE

4
这个解决方法对我很有用。我按照以下方式编辑了serverInfo.properties文件:
server.info=Apache Tomcat/8.0.0
server.number=8.0.0.0
server.built=Oct 6 2016 20:15:31 UTC

3

我在Eclipse Kepler v3.8中遇到了类似的问题。我安装了tomcat v8.5.37,但无法看到Apache v8.5的选项。通过浏览StackOverflow,我发现Apache v9.0在Eclipse Neon上可用。

很棒的是,你不必更改Eclipse版本。在当前的Eclipse中,通过以下步骤下载WTP(Web Tools Package):

步骤1:点击Help >>> Install New Software。将此链接复制到Work with: 中:http://download.eclipse.org/webtools/repository/neon

步骤2:从第一个软件包中选择JST Server AdaptersJST Server Adapters Extensions。安装这些软件包。

步骤3:点击Windows >>> Preferences >>> Server >>> Runtime Environments >>> Add..

你会看到Apache v9.0!它能够正常工作!


谢谢!我刚在我的 MacBook 上重新安装了 Eclipse 2019-03,Tomcat 对我来说总是最难找的插件。我使用了 https://download.eclipse.org/webtools/repository/2019-03/。 - Thad

2
安装最新版本的eclipse()。它会有添加Tomcat 8.5的选项。

1

前往Tomcat的预览版本,例如:Tomcat 8.3,并复制catalina.jar文件,将其粘贴到您遇到问题的现有Tomcat中。


0

我猜你正在使用Eclipse Mars或更早的版本。你需要升级到Eclipse Neon或更高版本。


0

请原谅我提出旧问题。但这就像传说一样,总是发生在新用户身上。我在这里的原因是我想提供不同的答案。相当简单。请前往windows->preference->Runtime Environment->search并选择您下载服务器的文件夹。它将自动检测服务器,然后您就可以开始了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接