[英]Migrating EJB application from WebSphere Classic to Liberty Requires ejblite-3.1
I have inherited a legacy EJB application that was built as an EJB 3.0 with session beans and JPA. 我继承了一个遗留的EJB应用程序,该应用程序是使用会话bean和JPA构建为EJB 3.0的。 I am migrating from WebSphere 8.0 where the application worked without issues. 我正在从WebSphere 8.0迁移,该应用程序可以正常运行。 I have tested on WebSphere 8.5.5 classic and have no issues, however, we have decided for strategic reasons to use WebSphere Liberty. 我已经在WebSphere 8.5.5 classic上进行了测试,没有任何问题,但是,出于战略原因,我们决定使用WebSphere Liberty。 I am deploying two ear files on the application server, 1 which is a front end EAR app and one which houses the EJB (JPA) application. 我在应用程序服务器上部署了两个耳文件,一个是前端EAR应用,另一个是包含EJB(JPA)应用的文件。 Both applications run ins the same JVM. 两个应用程序都在同一JVM中运行。 I have deployed both and Liberty will start, however, I constantly (I know I can select the pop-up to save my choice) see the pop-up saying that my "Application XXXX requires feature(s): ejb-3.1 lite. However, I want to use ejb3.2-lite. In the project facets in Eclipse (Eclipse Juno w/ WDT) I cannot choose EJB 3.2 as the choice doesn't exist. The highest I can go is 3.1 which is the level currently. Here is the snippet of my server.xml file: 我已经部署了两者,Liberty将开始运行,但是,我不断地(我知道我可以选择弹出窗口来保存我的选择),看到弹出窗口说我的“ Application 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>
In the Ear file java project I have selected EJB 3.1, but only because I don't see a way to select 3.2 as the EJB specification. 在Ear文件Java项目中,我选择了EJB 3.1,但这仅仅是因为我没有看到选择3.2作为EJB规范的方法。 Since you can see above I am using the full java7EE profile I am automatically getting ejblite-3.2 but it seems my app for some reason won't exploit it. 从上面可以看到,我正在使用完整的java7EE配置文件,因此我会自动获取ejblite-3.2,但是由于某种原因,我的应用似乎无法利用它。 Please advise! 请指教!
The WTP version in Eclipse Juno does not have JavaEE7 support. Eclipse Juno中的WTP版本不支持JavaEE7。 Try upgrading to Kepler and above - see the new and noteworthy section for further details https://www.eclipse.org/webtools/releases/3.5.0/NewAndNoteworthy/javaee.php 尝试升级到Kepler及更高版本-有关更多详细信息, 请参见新的和值得注意的部分,以了解更多详细信息https://www.eclipse.org/webtools/releases/3.5.0/NewAndNoteworthy/javaee.php
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.