Umstieg von javax auf Jakarta

DaBe1812

Bekanntes Mitglied
Hallo,

wir wollen in unserem Projekt von javax auf jakarta umsteigen.
Nachdem ich schon viel Spaß dabei hatte in 400 Klassen javax gegen jakarta zu ersetzen, um dann beim Kompilieren fest zu stellen, dass z.B. naming noch in javax liegt und es davon kein jakarta pendant gibt, habe ich es endlich geschafft das Projekt (mit einigen aus kommentierten Zeilen) zu kompilieren.

Jetzt geht es an den Server-Start und der macht mir richtig Probleme. In der aktuellsten Version waren im Server (WebSphere Application Server 22.0.0.5) folgende Features aktiv:
XML:
<featureManager>
  <feature>appSecurity-2.0</feature>
  <feature>cdi-2.0</feature>
  <feature>concurrent-1.0</feature>
  <feature>ejbLite-3.2</feature>
  <feature>jdbc-4.2</feature>
  <feature>jndi-1.0</feature>
  <feature>jsf-2.3</feature>
  <feature>jsp-2.3</feature>
  <feature>localConnector-1.0</feature>
  <feature>servlet-4.0</feature>
  <feature>jpa-2.2</feature>
  <feature>jaxb-2.2</feature>
</featureManager>
Ich habe das in Jakarta 9.1 übersetzt, laut folgender Seite: Jakarta Update

Jetzt sieht der FeaturaManager so aus:
XML:
<featureManager>
  <feature>jdbc-4.2</feature>
  <feature>localConnector-1.0</feature>
  <feature>appSecurity-4.0</feature>
  <feature>cdi-3.0</feature>
  <feature>concurrent-2.0</feature>
  <feature>enterpriseBeansLite-4.0</feature>
  <feature>xmlBinding-3.0</feature>
  <feature>persistence-3.0</feature>
  <feature>faces-3.0</feature>
  <feature>pages-3.0</feature>
  <feature>servlet-5.0</feature>
</featureManager>

Beim Starten kommt es dann zu folgende Fehlern:
Code:
[FEHLER  ] CWWKF0044E: Die Features appSecurity-4.0 und com.ibm.websphere.appserver.builtinAuthentication-1.0 können nicht gleichzeitig geladen werden. Das Feature appSecurity-4.0 von Jakarta EE 9 ist nicht kompatibel mit dem Feature com.ibm.websphere.appserver.builtinAuthentication-1.0 von Java EE 6. Die konfigurierten Features appSecurity-4.0 und appSecurity-4.0 enthalten eine nicht kompatible Kombination von Features. Ihre Konfiguration wird nicht unterstützt. Aktualisieren Sie die Konfiguration so, dass Features verwendet werden, die das Programmiermodell Jakarta EE oder das Programmiermodell Java EE verwenden, aber nicht beide.
[FEHLER  ] CWWKF0033E: Die Singleton-Features com.ibm.websphere.appserver.transaction-2.0 und com.ibm.websphere.appserver.transaction-1.1 können nicht gleichzeitig geladen werden. Die konfigurierten Features appSecurity-4.0 und jdbc-4.2 enthalten mindestens ein Feature, das den Konflikt verursacht. Ihre Konfiguration wird nicht unterstützt. Aktualisieren Sie die Datei server.xml und entfernen Sie die inkompatiblen Features.

Ich denke mal, dass ich die builtinAuthentication irgendwie übersteuern kann, aber appSecurity und jdbc kann ich ja nicht entweder oder verwenden. Das Internet hat mir jetzt nach 6 Stunden googlen auch nicht weiter geholfen, weil ich das ganze Feature-Gedöns nicht so recht verstehen will.

Kann mir da jemand von euch helfen?
 

LimDul

Top Contributor
Helfen nicht wirklich, weil ich mit der schwarzen Server Magie zu wenig zu tun habe und wenn nur auf dem JBoss.

Aber generell vermute ich mal, dass es mit deiner Anwendung zu tun hat und nicht mit dem server. Schau mal ob irgendwo unter main/src/resources oder main/src/webapp oder sonst irgendwo da da auch server.xml oder ähnliche Configs liegen, die auch noch angehoben werden müssen.
 

Robert Zenz

Top Contributor
Ich habe mir die Sache nur kurz angesehen und bin auch nie in der Ecke von Java unterwegs. Aber kann es sein dass jdbc-4.2 das Problem bildet? Ist vielleicht einfach jdbc-4.3 die Antwort?
 

DaBe1812

Bekanntes Mitglied
Hi,
@LimDul : Leider kommt er garnicht zum Laden meiner Anwendung, selbst wenn ich die komplett auskopple. Das passiert schon beim aktivieren der Features beim Start des Servers
@Robert Zenz : Leider kommt auch dabei ein Fehler. Witzigerweise hat Eclipse sich heute mal wieder dazu entschlossen mir das Fenster für Konflikte an zu zeigen. Leider kann man den Fehler nicht kopieren
Eclipse-Fehler.JPG
Da hab ich aber schon AppSecurity 4.0 raus genommen, sonst konfliktet es damit. Ich brauche doch das jdbc-feature, damit ich jdbc-Datenquellen im Server angeben kann, oder?
 

LimDul

Top Contributor
Als ich gestern auch mal gegooglt habe, war jdbc auf im jakarta9.1 Profile aufgeführt.

Ich hab gesehen, IBM bietet quasi einen "nackten" websphere für jakarta 9.1 an (zumindest lese ich hier was raus: https://www.ibm.com/docs/en/was-liberty/base?topic=file-list-installation-zip-archive-files)

Evtl. die mal suchen und einen frischen Server direkt für jakarta 9 konfigurieren und dann schauen, ob noch was anderes schief ist?

Edit: hier ist auch jdbc 4.2 und 4.3 aufgeführt: https://www.ibm.com/docs/en/was-lib...ogen.nd.doc/ae/rwlp_feature_jakartaee-9.1.htm
 

DaBe1812

Bekanntes Mitglied
Hi,
deinen Link probier ich auch gleich aus, aber es haben sich Änderungen ergeben:
Mit den Features
Java:
<featureManager>
  <feature>cdi-3.0</feature>
  <feature>concurrent-2.0</feature>
  <feature>enterpriseBeansLite-4.0</feature>
  <feature>faces-3.0</feature>
  <feature>localConnector-1.0</feature>
  <feature>pages-3.0</feature>
  <feature>servlet-5.0</feature>
  <feature>xmlBinding-3.0</feature>
</featureManager>
startet der Server. Knallt dann leider kurz nach dem Start, wenn er das erste Mal auf den EntityManager zugreifen möchte, weil ohne jdbc-Features keine datasource-Objekte geladen werden.
 

LimDul

Top Contributor
Nur mal ein Gedanke - im JBoss gibt es pro "Modul" irgendwo eine xml Datei, die spezifiziert, welche Abhängigkeiten dieses Modul braucht. Evtl. existiert das beim websphere ähnlich das irgendwo zu dem jdbc-feature noch eine xml mit den abhängigkeiten liegt und die man auch auf jakarta 9 anpassen muss? (Ist mehr raten von außen)
 

DaBe1812

Bekanntes Mitglied
Hm, klingt ganz logisch, werd ich gleich mal suchen.
Das Thema WLP find ich auch nur so semi-cool, weil der einfach zu wenig eingesetzt wird. JBoss oder der ganze gratis Kram, findet man tausende Tutorials und Hilfen im Netz, aber zu WLP gibt es fast nix, außer die Original-Doku.
 

DaBe1812

Bekanntes Mitglied
Okay, jetzt wird es wärmer. Bei der suche hab ich folgende Datei gefunden:
Code:
io.openliberty.jdbc4.3.internal.ee-6.0.mf
ee 6.0 ist mal garnicht das, was ich will.
Online mal danach gesucht und es gibt scheinbar tatsächlich eine
Code:
io.openliberty.jdbc4.3.internal.ee-9.0
Jetzt muss ich die nur runterladen und dann nochmal über die Abhängigkeiten gucken.
AppSecurity muss ja auch noch rein, sonst ist blöd mit SSL.
 

DaBe1812

Bekanntes Mitglied
So, danke an alle. Das Problem ist erstmal eingegrenzt und die Lösung ist bekannt. Es gibt vom WLP in unserer Version (22.0.0.5) wie auch weiteren Versionen mehrere Config-Sets für unterschiedliche Szenarien, unter anderem eben JakarteEE 9. In den Definitionen der Features sind da auch teilweise große Unterschiede in den Abhängigkeiten.
Ich habe mir einen Jakarta EE9 Server geladen und dort einfach das komplette Lib-Verzeichnis ausgetauscht und schon hat meine Featureliste, die ich gemäß Übersetzungstabelle erstellt habe funktioniert.
Leider ist das nur die lokale Lösung, denn die Wartung der WLP auf den unterschiedlichen Stage-Servern liegt nicht in meiner Hand, d.h. ein Supportticket ist raus und jetzt warte ich mal ab, wie hier alles seinen sozialistischen Gang nimmt.

Vielen Dank an alle Denkanstöße und Ideen. Irgendwie war in jeder Idee ein Baustein der Lösung drin gewesen.
 

Ähnliche Java Themen

Neue Themen


Oben