Eclipse Mars 与 WAS Liberty 服务器 8.5.5.6 的集成无法识别某些 Java EE 6 安装功能

Eclipse Mars integration with WAS Liberty server 8.5.5.6 does not recognize some Java EE 6 installed features

我最近从这个站点 (https://developer.ibm.com/wasdev/downloads/) 在 Eclipse Mars 中安装了 WAS 开发工具。我正在使用来自 IBM 站点的最新版本的 Websphere Liberty Profile(WAS Liberty with Java EE 7 Full Platform)。

因为我的应用程序是 Java EE 6 兼容的,所以我需要安装应用程序服务器中未附带的几个功能,例如 jaxrs-1.1、cdi-1.0 等。

我使用了 Stack Overflow () 中其他几个问题中提到的安装实用程序。

在我不得不将我的应用实际部署到容器中之前,一切都运行良好。我尝试使用 Eclipse Integration 添加它,但被拒绝并显示以下消息:

项目方面上下文和依赖项注入 (CDI) 版本 1.0 不受支持。

但它!

当我将 war 文件复制到应用程序目录并手动将我的应用程序添加到 server.xml 时,它工作正常。

后来才知道有几个功能有warning消息:

无法识别功能 xxx

这些功能是:

<feature>jpa-2.0</feature>
<feature>jdbc-4.0</feature>
<feature>cdi-1.0</feature>
<feature>ejbLite-3.1</feature>
<feature>jsf-2.0</feature>

奇怪的是,一些以相同方式安装的功能(jaxrs-1.1、servlet-3.0 ...)被验证工具识别出来了。

我可以继续这样工作,每次需要部署时都将WAR文件复制到apps目录,但这很烦人。

有没有办法关闭验证工具或将这些已安装的功能手动添加到配置文件?

非常感谢您的帮助。如果您需要更多信息,请告诉我。

如果您下载了 WAS Liberty V8.5.5.6 with Java EE 7 Full Platform 版本,则它不包含 Java EE 6 功能。

安装 Java EE 6 功能使用:

installUtility install webProfile-6.0

或在 jar 文件中下载完整的运行时 - WAS Liberty V8.5.5.6 Runtime

在服务器视图中安装功能后刷新服务器(双击服务器,然后单击 Runtime Environment > Advanced options > Refresh

发生这种情况是因为工具没有意识到其下的运行时已更改。解决这个问题的方法有点隐蔽,但您可以使用以下步骤解决它:

  1. 从服务器视图 select 服务器,右键单击并 select 打开
  2. 打开时单击运行时环境。
  3. 单击向导中的“高级选项”。
  4. 单击“刷新”按钮。左侧和底部有一个标签,上面写着 "Last cache update" 当时间戳已更改时单击“确定”,然后单击“完成”。

WDT 现在应该了解运行时中存在的功能,您遇到的问题将会消失。