2016-04-04 4 views
1

Ich habe eine Legacy-EJB-Anwendung geerbt, die als EJB 3.0 mit Session-Beans und JPA erstellt wurde. Ich migriere von WebSphere 8.0, wo die Anwendung ohne Probleme funktionierte. Ich habe auf WebSphere 8.5.5 classic getestet und habe keine Probleme. Aus strategischen Gründen haben wir uns jedoch für WebSphere Liberty entschieden. Ich stelle zwei Ear-Dateien auf dem Anwendungsserver bereit, wobei es sich bei 1 um eine EAR-Anwendungs-App und bei der EJB-Anwendung (JPA) handelt. Beide Anwendungen laufen in derselben JVM. Ich habe beide installiert und Liberty wird starten, aber ich ständig (ich weiß, ich kann das Pop-up wählen, um meine Wahl zu speichern) sehen Sie das Pop-up sagen, dass meine "Anwendung XXXX Feature (s) erfordert: ejb-3.1 lite. Allerdings möchte ich ejb3.2-lite verwenden.In den Projektfacetten in Eclipse (Eclipse Juno w/WDT) kann ich EJB 3.2 nicht wählen, da die Auswahl nicht existiert.Der höchste, den ich gehen kann, ist 3.1, welches die Ebene derzeit ist . Hier ist der Ausschnitt aus meiner Datei server.xml.Migrieren der EJB-Anwendung von WebSphere Classic zu Liberty Erfordert ejblite-3.1

<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> 

im Java-Projekt Ear-Datei I EJB ausgewählt habe 3.1, aber nur, weil ich nicht sehen, wie man zu 3.2 als EJB-Spezifikation wählt da Sie können oben sehen, dass ich das volle java7EE Profil benutze Ich erhalte automatisch ejblite-3.2, aber es scheint, dass meine App es aus irgendeinem Grund nicht ausnutzt. Bitte berate!

+0

Dies wird wahrscheinlich dadurch verursacht, dass das Projektfacet in Eclipse für 3.1 konfiguriert ist. Wenn du mit der rechten Maustaste auf das Projekt klickst und Project Facets auswählst, sollte es eine ejb Facette geben, wenn die Version 3.1 zeigt, dann ändere sie auf 3.2 und es sollte funktionieren wie du es willst. – Alasdair

+0

Ja, ich hätte erwähnen sollen (ich werde ein Update zum ursprünglichen Beitrag hinzufügen), dass ich die Projektfacette von 3.0 auf 3.1 aktualisiert habe, aber ich kann nicht auf die 3.2 aktualisieren, da die Auswahl nicht existiert. Ich sollte auch erwähnen, dass ich in meinem JPA-Projekt nicht von JPA 2.0 auf 2.1 updaten kann, weil die Auswahl dort auch nicht existiert. Irgendwelche Gedanken? – Doug

Antwort

2

Die WTP-Version in Eclipse Juno unterstützt keine JavaEE7-Unterstützung. Versuchen Sie, auf Kepler und höher zu aktualisieren - weitere Informationen finden Sie im neuen und beachtenswerten Abschnitt https://www.eclipse.org/webtools/releases/3.5.0/NewAndNoteworthy/javaee.php

+0

Fairer Punkt, dein Recht. Daran habe ich nicht einmal gedacht. Arggg! Wir sind auf dieser archaischen Eclipse-Version aufgrund von Rational Team Concert-Servereinschränkungen sowie anderer von meiner Firma verwendeter Tools festgefahren. Weißt du zufällig, ob ich die Xmls hacken kann, wenn ich verzweifelt nach EJB 3.2 und JPA 2.1 suche? – Doug

+0

Ich würde es nicht empfehlen. Sie können einen Arbeitsbereich einrichten, der die JavaEE7-Entwicklung unterstützt (Mindestlevel für WDT ist Eclipse Luna) und versuchen, RTC darüber zu installieren. Wenn Sie RTC nicht installieren können, versuchen Sie, Ihre Projekte in ein Archiv zu exportieren (Export> Archivdatei), und importieren Sie sie dann in Ihren neuen Arbeitsbereich, damit Sie sie migrieren und zu Testzwecken bereitstellen können. – ktsao

+0

Sie können WDT anweisen, die Funktionen nicht hinzuzufügen. Wenn Sie mit der rechten Maustaste auf das Projekt klicken, gibt es einen Einstellungsbereich für Liberty-Funktionen. Es erlaubt Ihnen zu sagen, dass Sie ejbLite-3.1 nicht hinzufügen dürfen und Sie können ejbLite-3.2 manuell zum Server hinzufügen. – Alasdair

Verwandte Themen