我最近从这个站点(https://developer.ibm.com/wasdev/downloads/)在Eclipse Mars中安装了WAS Dev工具。我在IBM的网站上使用了最新版本的Websphere Liberty Profile(WAS Liberty with Java EE 7 Full Platform)。
由于我的应用程序符合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添加它,但它被拒绝了这条消息:
项目方面不支持上下文和依赖项注入(CDI)1.0版。
但它 IS !
当我将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目录,但这非常烦人。
有没有办法关闭验证工具或手动将这些已安装的功能添加到配置文件中?
非常感谢你的帮助。如果您需要更多信息,请告诉我。
答案 0 :(得分:3)
如果您已下载版本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 :(得分:3)
这种情况正在发生,因为工具没有意识到其下的运行时间已经发生变化。修复此问题的方法有点隐藏,但您可以使用以下步骤修复它:
WDT现在应该了解运行时中存在的功能,并且您遇到的问题将会消失。