Bekannte Probleme und Einschränkungen für die Laufzeitumgebung
Bei der Arbeit mit der Laufzeitumgebung des Liberty-Profils sind einige bekannte Probleme und Einschränkungen zu beachten.

Weitere Informationen finden Sie unter Bekannte Probleme und Einschränkungen von Developer Tools.
Liste bekannter Probleme und Einschränkungen:
- Allgemeine Einschränkungen:
- Unterstützte Java-Mindestversionen
- Pfad und Name des Installationsverzeichnisses dürfen keine Nicht-ASCII-Zeichen enthalten
- Änderung der JDBC-Datenquelle während der Ausführung kann JPA-Fehler verursachen
- Eine Anwendung, die darauf angewiesen ist, dass ein Ergebnis von getRealPath zurückgegeben wird, muss als erweiterte Anwendung, nicht als WAR-Datei, implementiert werden
- Scripts des vollständigen Profils von WebSphere Application Server können unter dem Liberty-Profil nicht ausgeführt werden
- Einschränkungen für Dateigruppen
- Klassen aus dem Java SDK überschreiben
Wenn Sie die Veröffentlichung einer gemeinsam genutzten Bibliothek rückgängig machen, kann diese erst nach dem Stoppen des Servers gelöscht werden
- Einschränkungen für java:global-Lookups
- Anwendungen werden in einem integrierten Liberty-Server nicht gestartet
Einschränkungen des WebSphere MQ-Ressourcenadapters und der generischen JCA-Unterstützung
- Versionssteuerung für Anwendungen im Verzeichnis "dropins" ist nicht möglich
- Spezifische Einschränkungen für Liberty-Features:
Einschränkungen bezüglich des Features "Admin Center"
- Einschränkungen für das Feature appSecurity-2.0
- Einschränkungen für das Feature "beanValidation"
- Einschränkungen für das Feature "Dynamischer Cache"
- Einschränkungen für das Feature "ejbLite-3.1"
Einschränkungen für das Feature "eventLogging-1.0"
Einschränkungen für das Feature "jpa-2.1"
- Einschränkungen für das Feature "jsp-2.2"
- Einschränkungen für das Feature "monitor-1.0"
Einschränkungen für das Feature "requestTiming-1.0"
- Einschränkungen für das Feature "wmqJmsClient-1.1"
Einschränkungen für das Feature "wmqJmsClient-2.0"
Einschränkungen für das Feature "concurrent-1.0"
Einschränkungen für das Feature "jacc-1.5"
- Änderung der Eigenschaften "dataSource", "jdbcDriver", "connectionManager" und der JDBC-Anbietereigenschaften während der Ausführung kann JPA-Fehler verursachen
Unterstützte Java-Mindestversionen
- Java SE 6-Laufzeitumgebung
- Für das Java-SDK von IBM® ist die unterstützte Mindestversion 6.0 (J9 2.6) SR 1. Für das JDK von Oracle ist die unterstützte Mindestversion Java 6 Update 26.
- Java SE 7-Laufzeitumgebung
- Für das Java-SDK von IBM ist die unterstützte Mindestversion IBM Runtime Environment, Java Technology Edition 7.0.4.1. Für das JDK von Oracle unter Windows und Linux ist die unterstützte Mindestversion Java SDK/JRE/JDK 7.0.17. Für das JDK von Oracle unter Mac OS X ist die unterstützte Mindestversion Java SDK/JRE/JDK 7.0 Update 15.
Java SE 8-Laufzeitumgebung
- Für das Java-SDK von IBM ist die unterstützte Mindestversion IBM SDK Java Technology Edition Version 8. Für das JDK von Oracle ist die unterstützte Mindestversion Java 8 Update 25.
Auf verteilten
Plattformen wird 32-Bit- oder
64-Bit-Java unterstützt.
Auf
Windows- und
Linux-Systemen können Sie entweder
das JDK von Oracle oder das JDK von IBM verwenden.
Wenn Sie Anwendungen unter Windows oder
Linux entwickeln und planen, diese Anwendungen
in einem Server zu implementieren, der im vollständigen Profil von
WebSphere Application Server ausgeführt wird, müssen Sie das
JDK von IBM verwenden.
Für HP-Systeme und Mac OS müssen Sie das JDK von Oracle verwenden.

![[8.5.5.2 oder höher]](../ng_v8552.gif)
![[8.5.5.2 oder höher]](../ng_v8552.gif)
Pfad und Name des Installationsverzeichnisses dürfen keine Nicht-ASCII-Zeichen enthalten
Neuere JVMs bieten keine vollständige Unterstützung für die Verwendung von Nicht-ASCII-Zeichen in den Befehlen -jar und -javaagent. Sie dürfen in Ihren Installationsverzeichnisnamen und -pfaden nur ASCII-Zeichen verwenden.
Änderung der JDBC-Datenquelle während der Ausführung kann JPA-Fehler verursachen
Falls der Typ des Datenbankwörterverzeichnisses nicht mit Eigenschaften angegeben wird, wird er von OpenJPA erkannt und ermittelt, wenn der erste Entitätsmanager erstellt und die Datenbankverbindung hergestellt wird. Dieser Typ des Datenbankwörterverzeichnisses wird für alle Entitätsmanager verwendet, die nachfolgend erstellt werden. Wird die JDBC-Datenquelle geändert, während die Anwendung ausgeführt wird, kann die Entitätsmanager-Factory diese Änderung nicht erkennen und sie verwendet weiterhin das alte Wörterverzeichnis für Operationen, die für die neue Datenquelle ausgeführt werden. Dies kann zu Fehlern führen, falls eine Umstellung auf die Datenbank eines anderen Anbieters vorgenommen wird.
Wenn Sie eine Umstellung auf die Datenbank eines anderen Anbieters vornehmen, starten Sie die Anwendung erneut.
Änderung der Eigenschaften "dataSource", "jdbcDriver", "connectionManager" und der JDBC-Anbietereigenschaften während der Ausführung kann JPA-Fehler verursachen
Wenn Sie die Konfiguration der Eigenschaften dataSource, jdbcDriver, connectionManager oder der Listen mit JDBC-Anbietereigenschaften (z. B. properties.db2.jcc oder properties.oracle) ändern, während der Server ausgeführt wird, können Fehler des Typs J2CA8040E angezeigt werden. Diese Fehler weisen darauf hin, dass es nicht möglich ist, einem einzigen connectionManager mehrere dataSource-Elemente zuzuordnen. Diese Fehler werden auch dann generiert, wenn dem connectionManager nur ein einziges dataSource-Element in der Konfiguration zugeordnet ist.
Wenn Sie Änderungen an der Konfiguration einer dieser JDBC-Ressourcen vornehmen, starten Sie den Server erneut.
Eine Anwendung, die darauf angewiesen ist, dass ein Ergebnis von getRealPath zurückgegeben wird, muss als erweiterte Anwendung, nicht als WAR-Datei, implementiert werden
Die Java-EE-Spezifikation legt fest, dass die Methode getRealPath() den Wert null zurückgibt, wenn der Inhalt aus einer WAR-Datei (Webarchiv) bereitgestellt wird. Wenn Sie eine WAR-Datei im Liberty-Profil implementieren, wird die Archivdatei vom Profil nicht automatisch in eine Verzeichnisstruktur entpackt. Daher kann die Anwendung möglicherweise nicht gestartet werden. Wenn Ihre Anwendung erwartet, dass ein Ergebnis von getRealPath() zurückgegeben wird, müssen Sie die Anwendung als erweiterte Webanwendung, nicht als WAR-Datei, implementieren. Beispielsweise können Sie die WAR-Datei manuell entpacken und die erweiterte Anwendung in das Verzeichnis dropins kopieren.
Scripts des vollständigen Profils von WebSphere Application Server können unter dem Liberty-Profil nicht ausgeführt werden
Sie können keines der Scripts im Verzeichnis bin des vollständigen Profils von WebSpere Application Server zum Verwalten des Liberty-Profils verwenden.
Einschränkungen für Dateigruppen
- Dateigruppen können die Unterverzeichnisse des Basisverzeichnisses nicht rekursiv durchsuchen. Beispielsweise
werden die folgenden Anweisungen nicht unterstützt:
<fileset id="testFileset" dir="\temp" includes="**\a.jar"/> <fileset id="testFileset" dir="\temp" includes="a\a.jar"/> <fileset id="testFileset" dir="\temp" includes="*\a.jar"/> <fileset id="testFileset" dir="\temp" includes="a\b\a.jar"/>
Klassen aus dem Java SDK überschreiben
- Wenn Sie den Build mit javac über die Befehlszeile erstellen möchten, kompilieren Sie Ihren Code mit der Option javac -endorseddirs und den JAR-Dateien im Verzeichnis ${wlp.install.dir}/dev/specs.
- Wenn Sie Apache Ant für den Build verwenden möchten, kompilieren Sie Ihren Code mit dem untergeordneten Element
<compilerarg> der javac-Task und den JAR-Dateien im Verzeichnis ${wlp.install.dir}/dev/specs. Geben Sie im Erstellungsscript die Option -endorseddirs und das Verzeichnis
${wlp.install.dir}/dev/specs als eigenständige <compilerarg>-Elemente an. Beispiel:
<javac srcdir="src" destdir="classes"/> <compilerarg value="-endorseddirs"/> <compilerarg value="${wlp.install.dir}/dev/specs"/> </javac>
- Wenn Sie Apache Maven für den Build verwenden möchten, kompilieren Sie Ihren Code mit dem Element
endorseddirs des Maven-Compiler-Plug-ins und den JAR-Dateien im Verzeichnis ${wlp.install.dir}/dev/specs. Beispiel:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> <compilerArguments> <endorseddirs>${wlp.install.dir}/dev/specs</endorseddirs> </compilerArguments> </configuration> </plugin>

Wenn Sie die Veröffentlichung einer gemeinsam genutzten Bibliothek rückgängig machen, kann diese erst nach dem Stoppen des Servers gelöscht werden
Wenn Sie die Veröffentlichung einer gemeinsam genutzten Bibliothek auf einem Server rückgängig machen, wird die JAR-Datei der Bibliothek nicht sofort vom Server freigegeben. Daher weiß das Betriebssystem nicht, dass diese Datei nicht mehr verwendet wird, und lässt das Löschen der Datei nicht zu. Wenn Sie den Server das nächste Mal stoppen, wird die JAR-Datei der Bibliothek freigegeben, und Sie können die Datei löschen.
Einschränkungen für java:global-Lookups
Ressourcen, die in Anwendungen mit java:global-Lookups definiert sind, können nur verwendet werden, um auf Namen zuzugreifen, die von im aktuellen Server implementierten Anwendungen deklariert wurden.
Einschränkungen für das Feature appSecurity-2.0
- Für EJB-Anwendungen wird die run-as-mode-Einstellung SYSTEM_IDENTITY in den Erweiterungseinstellungen der Datei ibm-ejb-jar-ext.xml nicht unterstützt.
- Die API getCallerIdentity wird für Singleton-Session-Beans nicht unterstützt.
- Rollennamen können von den APIs HttpServletRequest.isUserInRole und EJBContext.isCallerInRole oder von Elementen im Implementierungsdeskriptor referenziert werden, ohne dass zuerst die Rollennamen mit der Annotation @DeclareRoles oder dem Element <security-role/> im Implementierungsdeskriptor deklariert werden müssen. Allerdings müssen Rollen deklariert werden, bevor sie im vollständigen Profil verwendet werden können.
Anwendungen werden in einem integrierten Liberty-Server nicht gestartet
Vergewissern Sie sich, dass der Java-Prozess, der den eingebetteten Liberty-Server startet, mit dem JVM-Argument -javaagent, das auf Liberty-Installationsverzeichnis/bin/tools/ws-javaagent.jar verweist, gestartet wurde. Wenn das JVM-Argument -javaagent nicht verwendet wird, wird die Serverlaufzeit gestartet, aber der Start von Anwendungen schlägt ohne offensichtliche Ausnahmen fehl.
![[8.5.5.6 oder höher]](../ng_v8556.gif)
Einschränkungen des WebSphere MQ-Ressourcenadapters und der generischen JCA-Unterstützung
Der WebSphere® MQ-Ressourcenadapter kann im WebSphere Application Server Liberty-Profil verwendet werden, indem das Feature wasJmsClient-1.1 oder wasJmsClient-2.0 der die generische JCA-Unterstützung verwendet wird.
Sie können den WebSphere MQ-Ressourcenadapter der Version 7.5 mit dem Liberty-Profil der Version 8.5.5 und höher verwenden. Wenn Sie den WebSphere MQ-Ressourcenadapter der Version 8.0 verwenden möchten, der auf dem JMS 2.0-Ressourcenadapter basiert, müssen Sie sicherstellen, dass Sie die aktuellste mit dem JMS 2.0-Ressourcenadapter kompatible Version des Liberty-Profils verwenden.
- Ab Liberty Profile Version 8.5.5.2 muss das Feature wasJmsClient-1.1 mit einem IBM MQ-Ressourcenadapter der Version 7.5.0.5 oder höher verwendet werden.
- Ab Liberty Profile Version 8.5.5.6 muss das Feature wasJmsClient-2.0 mit einem IBM MQ-Ressourcenadapter der Version 8.0.0.3 oder höher verwendet werden.
Weitere Informationen zur Versionskompatibilität zwischen dem WebSphere MQ-Ressourcenadaper und dem Liberty-Profil finden Sie auf der Seite Obtaining the WebSphere MQ Resource Adapter for the WebSphere Application Server Liberty Profile.
- Zum Ausführen des IBM® WebSphere MQ-Ressourcenadapters unter z/OS müssen Sie das Feature wasJmsClient-1.1 oder wasJmsClient-2.0 verwenden.
- Die Traceerstellung und die Protokollierung sind nicht über JCA im Liberty-Tracesystem integriert. Der Trace wird in eine separate Datei geschrieben und muss durch Festlegen der Systemeigenschaften aktiviert werden. Zum Aktivieren der Traceerstellung gehen Sie genauso vor wie zum Konfigurieren der WebSphere MQ-Klassen für die JMS-Tracefunktion für eine Java™-Standardumgebung. Weitere Informationen finden Sie unter Java Standard Environment Trace stanza.
Versionssteuerung für Anwendungen im Verzeichnis "dropins" ist nicht möglich
Bei Anwendungen im Verzeichnis "dropins" werden der Dateiname und die Dateierweiterung vom Anwendungsmonitor verwendet, um den Typ der Anwendung zu ermitteln und die Anwendungs-ID und den Anwendungsnamen zu generieren. Es ist deswegen nicht möglich, die Versionsnummer für die Anwendung durch die Verwendung des Dateinamens oder der Dateierweiterung anzugeben. Es wird empfohlen, das Verzeichnis "dropins" in einer Produktionsumgebung nicht zu verwenden.
Einschränkungen bezüglich des Features "Admin Center"
Einschränkungen für das Feature "beanValidation"
- Es gibt keine Unterstützung für die Beanvalidierung in OSGi-Anwendungen.
![[8.5.5.6 oder höher]](../ng_v8556.gif)
- Es gibt keine Unterstützung für die Beanvalidierung in OSGi-Anwendungen.
- Anwendungen, die eine angepasste ConstraintValidatorFactory-Implementierung in einer Datei des Typs validation.xml mit dem Feature beanValidation-1.0 bereitstellen, können nicht mit der Bean Validation 1.1 API kompiliert werden.
Einschränkungen für das Feature "Dynamischer Cache"
- Die Cachereplikation wird nicht unterstützt.
- Für wahlfreie oder größenbasierte Bereinigungsverfahren wird nur der Caching-Modus mit Hochleistungsdatenträger unterstützt.
- In der Datei cachespec.xml werden das client- und serverseitige Caching von Web-Services sowie das Portlet-Caching nicht unterstützt.
- Das Servlet-Caching für SingleThreadModel-Servlets wird nicht unterstützt.
- Die Definition der Cachekonfiguration mit Eigenschaftendateien wird für JAR-Dateien, die nur EJBs (Enterprise JavaBeans) enthalten, nicht unterstützt.
- Die Größenbeschränkung des Heapspeichercaches funktioniert nur für 32-Bit-JVMs (Java Virtual Machine).
Einschränkungen für das Feature "ejbLite-3.1"
- EJB-Module mit einer älteren Version als 3.0 werden nicht unterstützt. Diese Einschränkung bedeutet auch, dass Bindungen und Erweiterungen, die das Format .xmi und nicht .xml verwenden, nicht unterstützt werden.
- Session-Beans sind nicht an den Namespace ejblocal gebunden, d. h., in JNDI-Suchen und für ejb-ref-Bindungsnamen müssen die Namen java:global, java:app oder java:module verwendet werden. simple-binding-name und Schnittstellenelemente vom Typ binding-name werden in Dateien vom Typ ibm-ejb-jar-bnd.xml ignoriert.
- Das Auslagerungsverzeichnis für Stateful Beans ist nicht konfigurierbar. Die Dateien werden im Arbeitsbereich des Servers inaktiviert.
![[8.5.5.6 oder höher]](../ng_v8556.gif)
Einschränkungen für das Feature "eventLogging-1.0"
- Wird das Feature eventLogging-1.0 aus einem aktiven Server entfernt, werden die implementierten Webanwendungen erneut gestartet.
![[8.5.5.6 oder höher]](../ng_v8556.gif)
Einschränkungen für das Feature "jpa-2.1"
Für das Feature jpa-2.1 setzt der JPA-Entitätsaustausch über CORBA/RMI-IIOP voraus, dass beide an der Kommunikation Beteiligten identische JPA-Featureversionen verwenden.
Einschränkungen für das Feature "jsp-2.2"
- Die Konfigurationsoption useInMemory, mit der lediglich die übersetzte JSP-Datei im Hauptspeicher gespeichert werden kann, wird nicht unterstützt.
Einschränkungen für das Feature "monitor-1.0"
- Wenn das Feature aus der Datei server.xml entfernt wird, müssen Sie den Server erneut starten, damit die JAX-WS-Anwendungen funktionieren.
![[8.5.5.6 oder höher]](../ng_v8556.gif)
Einschränkungen für das Feature "requestTiming-1.0"
- Wird das Feature requestTiming-1.0 aus einem aktiven Server entfernt, werden die implementierten Webanwendungen erneut gestartet.
- Wenn das Feature requestTiming-1.0 aktiviert ist, hat es einen Verlust von 8 % auf den maximalen Anwendungsdurchsatz zur Folge, gemessen mit der Anwendung DayTrader. Während die Auswirkungen auf die Anwendungen in etwa diesem Wert entsprechen, sollten Sie beachten, dass einige Leistungseinbußen bemerkbar sein können.
Einschränkungen für das Feature "wmqJmsClient-1.1"
- Die Variable PATH in den Windows-Umgebungsvariablen muss manuell so festgelegt werden, dass sie auf das WebSphere MQ-Installationsverzeichnis "bin" verweist. Diese Pfadvariable muss festgelegt werden, wenn die Anwendung den Verbindungsmodus BINDING verwendet.
- Die WebSphere MQ-Klassen für Java (im Allgemeinen als Java-Basis bezeichnet) sind nicht in das Feature wmqJmsClient-1.1 eingeschlossen. Sie sind im Ressourcenadapter für andere Anwendungsserver enthalten, werden jedoch nicht für die Basis-Java-APIs in den Umgebungen der Java Enterprise Edition empfohlen. Weitere Informationen finden Sie im Artikel Using WebSphere MQ Java Interfaces in J2EE/JEE Environments.
- Der Transporttyp BINDINGS_THEN_CLIENT des WebSphere MQ-Ressourcenadapters wird für das Feature wmqJmsClient-1.1 nicht unterstützt.
- Advanced Messaging Security (AMS) wird für das Feature wmqJmsClient-1.1 nicht bereitgestellt.
![[8.5.5.6 oder höher]](../ng_v8556.gif)
Einschränkungen für das Feature "wmqJmsClient-2.0"
- Die Variable PATH in den Windows-Umgebungsvariablen muss manuell so festgelegt werden, dass sie auf das WebSphere MQ-Installationsverzeichnis "bin" verweist. Diese Pfadvariable muss festgelegt werden, wenn die Anwendung den Verbindungsmodus BINDING verwendet.
- Die WebSphere MQ-Klassen für Java (im Allgemeinen als Java-Basis bezeichnet) sind nicht in das Feature wmqJmsClient-2.0 eingeschlossen. Sie sind im Ressourcenadapter für andere Anwendungsserver enthalten, werden jedoch nicht für die Basis-Java-APIs in den Umgebungen der Java Enterprise Edition empfohlen. Weitere Informationen finden Sie im Artikel Using WebSphere MQ Java Interfaces in J2EE/JEE Environments.
- Der Transporttyp BINDINGS_THEN_CLIENT des WebSphere MQ-Ressourcenadapters wird für das Feature wmqJmsClient-2.0 nicht unterstützt.
Einschränkungen für das Feature "concurrent-1.0"
Für das Feature "concurrent-1.0" gelten
die folgenden Einschränkungen:
Bei einem Threadkontext des Typs securityContext werden angepasste Informationen im Subjekt, die nicht mit einem JAAS-Anmeldemodul hinzugefügt wurden, nicht weitergegeben. Wenn beispielsweise das Subjekt des Übergebenden einen angepassten Principal enthält, der von einem TAI hinzugefügt wurde, enthält das weitergegebene Subjekt diesen angepassten Principal nicht.
![[8.5.5.6 oder höher]](../ng_v8556.gif)
Einschränkungen für das Feature "jacc-1.5"
- Berechtigungsinformationen (die Benutzer- und Gruppenattribute des Berechtigungsattributs) in einer Datei des Typs ibm-application-bnd.xml oder ibm-application-bnd.xmi der EAR-Anwendungsdatei.
- Berechtigungsinformationen (die Attribute user, group und special-subject des Attributs security-role im Element application-bnd) in der Datei server.xml.