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

标签 java eclipse jakarta-ee websphere eclipse-wtp

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

由于我的应用程序兼容 Java EE 6,因此我需要安装应用程序服务器中未提供的几个功能,例如 jaxrs-1.1、cdi-1.0 等。

我使用了 Stack Overflow 中其他几个问题中提到的安装实用程序 ( Web Application that requires "servlet-3.0" cannot be added to Websphere Liberty Server, version 8.5.6 or v9 Beta )。

一切都工作正常,直到我必须将我的应用程序实际部署到容器中。我尝试使用 Eclipse Integration 添加它,但被拒绝并显示以下消息:

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

但它!

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

后来我意识到有几个功能有警告消息:

无法识别功能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 目录,但这很烦人。

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

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

最佳答案

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

  1. 从“服务器” View 中选择服务器,右键单击并选择“打开”
  2. 打开后,单击“运行时环境”。
  3. 点击向导中的“高级选项”。
  4. 单击“刷新”按钮。左侧和底部有一个标签,上面写着“上次缓存更新”,当时间戳发生更改时,单击“确定”,然后单击“完成”。

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

关于java - Eclipse Mars 与 WAS Liberty 服务器 8.5.5.6 集成无法识别某些 Java EE 6 安装的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32384277/

相关文章:

java - itext 中的制表符

java - 如何在 Android Studio 中运行纯 java 代码?

java - 使用 andengine GLES2 通过引用传递 Sprite 会导致空指针异常

java - 如何从 eclipse 获取 .java 文件

java - 将 JPQL 自定义查询结果渲染到 JSF 页面中的问题

java - 更改 JFrame 上图像的位置

eclipse - 如何从给定包中获取所有类的列表

java - 使用 Eclipse 的 java 定时器

jakarta-ee - @RequestScoped CDI 注入(inject)到 @MessageDriven bean

java - com.mysql.jdbc.ResultSetMetaData;对比 java.sql.ResultSetMetaData;