我继承了一个遗留EJB应用程序,该应用程序是作为带有会话bean和JPA的EJB 3.0构建的。我正在从WebSphere 8.0迁移,其中应用程序正常运行。我已经在WebSphere 8.5.5 classic上进行了测试并且没有任何问题,但是,出于战略原因我们决定使用WebSphere Liberty。我在应用程序服务器上部署了两个ear文件,1是一个前端EAR应用程序,另一个是EJB(JPA)应用程序。两个应用程序都运行在同一个JVM中。我已经部署了两个并且Liberty将启动,但是,我经常(我知道我可以选择弹出窗口来保存我的选择)看到弹出窗口说我的“应用程序XXXX需要功能:ejb-3.1 lite。但是,我想使用ejb3.2-lite。在Eclipse的项目方面(Eclipse Juno w / WDT)我不能选择EJB 3.2,因为选择不存在。我可以去的最高是3.1这是当前的级别这是我的server.xml文件的片段:
<server description="new server">
<!-- Enable features -->
<featureManager>
<feature>javaee-7.0</feature>
<feature>localConnector-1.0</feature>
<feature>distributedMap-1.0</feature>
<feature>adminCenter-1.0</feature>
<feature>ssl-1.0</feature>
<feature>usr:webCacheMonitor-1.0</feature>
<feature>webCache-1.0</feature>
<feature>ldapRegistry-3.0</feature>
<feature>ejbRemote-3.2</feature>
</featureManager>
<!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" -->
<httpEndpoint host="*" httpPort="9080" httpsPort="9443" id="defaultHttpEndpoint"/>
<!-- Automatically expand WAR files and EAR files -->
<applicationManager autoExpand="true"/>
<applicationMonitor updateTrigger="mbean"/>
<enterpriseApplication id="CHServiceEAR" location="CHServiceEAR.ear" name="CHServiceEAR"/>
<enterpriseApplication id="CHNewCHRDMEAR" location="CHNewCHRDMEAR.ear" name="CHNewCHRDMEAR">
<application-bnd>
<security-role name="AllAuthenticated">
<special-subject type="ALL_AUTHENTICATED_USERS" />
</security-role>
</application-bnd>
</enterpriseApplication>
在Ear文件java项目中,我选择了EJB 3.1,但仅仅是因为我没有看到选择3.2作为EJB规范的方法。既然你可以看到上面我使用完整的java7EE配置文件我自动获得ejblite-3.2但似乎我的应用程序由于某种原因不会利用它。请指教!
答案 0 :(得分:2)
Eclipse Juno中的WTP版本没有JavaEE7支持。尝试升级到开普勒及以上版本 - 请参阅新的和值得注意的部分以获取更多详细信息https://www.eclipse.org/webtools/releases/3.5.0/NewAndNoteworthy/javaee.php