Jakarta ee 将EJB应用程序从WebSphere Classic迁移到Liberty需要ejblite-3.1

Jakarta ee 将EJB应用程序从WebSphere Classic迁移到Liberty需要ejblite-3.1,jakarta-ee,migration,websphere,websphere-liberty,Jakarta Ee,Migration,Websphere,Websphere Liberty,我继承了一个遗留的EJB应用程序,它是作为EJB3.0构建的,带有会话bean和JPA。我正在从WebSphere8.0迁移,在那里应用程序可以正常工作。我已经在WebSphere8.5.5Classic上进行了测试,没有任何问题,但是,出于战略考虑,我们决定使用WebSphereLiberty。我在应用服务器上部署了两个ear文件,一个是前端ear应用程序,另一个包含EJB(JPA)应用程序。两个应用程序都在同一个JVM中运行。我已经部署了两者,Liberty将启动,但是,我经常(我知道我可以

我继承了一个遗留的EJB应用程序,它是作为EJB3.0构建的,带有会话bean和JPA。我正在从WebSphere8.0迁移,在那里应用程序可以正常工作。我已经在WebSphere8.5.5Classic上进行了测试,没有任何问题,但是,出于战略考虑,我们决定使用WebSphereLiberty。我在应用服务器上部署了两个ear文件,一个是前端ear应用程序,另一个包含EJB(JPA)应用程序。两个应用程序都在同一个JVM中运行。我已经部署了两者,Liberty将启动,但是,我经常(我知道我可以选择弹出窗口来保存我的选择)看到弹出窗口说我的“应用程序XXXX需要功能:ejb-3.1 lite。但是,我想在Eclipse中的项目方面使用ejb3.2-lite(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>

javaee-7.0
localConnector-1.0
分布式地图-1.0
adminCenter-1.0
ssl-1.0
usr:webCacheMonitor-1.0
webCache-1.0
ldapRegistry-3.0
ejbRemote-3.2

在Ear文件java项目中,我选择了EJB3.1,但这仅仅是因为我看不到选择3.2作为EJB规范的方法。从上面可以看出,我使用的是完整的java7EE配置文件,我会自动获得ejblite-3.2,但我的应用程序似乎出于某种原因不会利用它。请注意!

Eclipse Juno中的WTP版本不支持它ave JavaEE7支持。尝试升级到开普勒及更高版本-有关更多详细信息,请参阅新的和值得注意的部分

这可能是由于eclipse中的项目方面配置为3.1造成的。如果右键单击项目并选择项目方面,则应该有一个ejb方面,如果版本显示为3.1,则将其更改为3.2,并且应该有一个ejb方面按照你想要的方式工作。是的,我应该提到(我会在原始帖子中添加更新)我将项目方面从3.0更新到3.1,但我无法更新到3.2,因为选择不存在。我还应该提到,在我的JPA项目中,我无法从JPA 2.0更新到2.1,因为选择也不存在。有什么想法吗?公平点,你的权利。我甚至没有想到。啊!我们被困在这个古老的日食上了由于Rational Team Concert服务器限制以及我公司使用的其他工具而导致的版本。如果我非常渴望EJB 3.2和JPA 2.1,您知道我是否可以破解XML吗?我不推荐。您可以设置一个支持JavaEE7开发的工作区(WDT的最低级别是Eclipse Luna)并尝试在其上安装RTC。如果无法安装RTC,则尝试将项目导出到存档(导出>存档文件)然后将它们导入到新工作区中,以便您可以迁移和部署它们进行测试。您可以告诉WDT不要添加这些功能。如果您右键单击项目,则会出现Liberty功能的首选项部分。它允许您说不要添加ejbLite-3.1,然后您可以手动将ejbLite-3.2添加到服务器。@ktsao--可能会攻击xmls很可能是个坏主意。:)我同意你导出并导入到更新的eclipse版本的方法。谢谢你提供的信息。