I have inherited a legacy EJB application that was built as an EJB 3.0 with session beans and JPA. I am migrating from WebSphere 8.0 where the application worked without issues. I have tested on WebSphere 8.5.5 classic and have no issues, however, we have decided for strategic reasons to use 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. Both applications run ins the same 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:
<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. 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. Please advise!
The WTP version in Eclipse Juno does not have JavaEE7 support. 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