Probleme bei der Anwendungsimplementierung
Beim Implementieren, Installieren oder Hochstufen von Anwendungen können Probleme auftreten. Dieser Artikel enthält Vorschläge für die Fehlerbehebung.
Welches Problem liegt vor?
- Anwendung wird nicht angezeigt
- Eine implementierte Anwendung kann nicht gesichert werden
Im Assembliertool, in der Administrationskonsole oder im Tool wsadmin wird die Ausnahme "java.lang.RuntimeException: Failed_saving_bytes_to_wor_ERROR_" angezeigt.
- WASX7015E Fehler beim Ausführen des wsadmin-Befehls $AdminApp installInteractive oder $AdminApp install
- CMP- oder BMP-Entity-Bean kann nicht in einem Modul der EJB Version 3.0 installiert werden
- Die von einem Assembliertool generierte DDL-Datei (Data Definition Language) löst auf der Zielplattform einen SQL-Fehler aus
- ADMA0004E: Validierungsfehler
- Die Ressource WEB-INF/ibm-web-bnd.xmi in der Archivdatei kann nicht geladen werden
- Fehlernachricht bei Installation: Es wurde kein gültiges Ziel im ObjectName anObject für Modul module_name angegeben
- Die Option addNode -includeapps zum Hochladen aller Anwendungen auf den Deployment Manager erscheint nicht
- Der Fehler "Zeitlimitüberschreitung!!!" wird angezeigt beim Versuch, eine Unternehmensanwendung in der Administrationskonsole zu installieren.
- Beim Implementieren einer Anwendung, die ein Webmodul enthält, wird eine Nachricht NameNotFoundException gesendet
Bei der Anwendungsinstallation löst der Aufruf von EJBdeploy eine Ausnahme aus
- Beim Installieren einer für Version 5.x oder früher generierten EJB-JAR-Datei treten Kompilierfehler auf, und das EJB-Deployment schlägt fehl
- Beim Hochladen von Dokumentation schlägt addNode -includeapps mit einer Ausnahme vom Typ OutOfMemoryError fehl
- Ausnahme vom Typ "OutOfMemory" im Deployment Manager
- Nach der Installation der Anwendung auf einer anderen Maschine kann die Anwendung nicht ausgeführt werden
- Während der Anwendungsaktualisierung ersetzt eine einzelne Datei alle Anwendungsdateien
- Vergewissern Sie sich, dass der logische Name, der in der Konsole für die Anwendung, das Enterprise-Bean-Modul oder eine andere Ressource angezeigt werden soll, keine ungültigen Zeichen wie die folgenden enthält: - / \ : * ? " < > |.
- Wenn die Anwendung mit dem Befehl $AdminApp install und dem Flag -local installiert wurde, starten Sie den Server erneut, oder führen Sie den Befehl ohne das Flag -local erneut aus.
Wenn der angezeigte Fehler nicht in ähnlicher Form aufgeführt ist oder wenn Sie den Fehler anhand der bereitgestellten Informationen nicht beheben können, prüfen Sie, ob der Fehler identifiziert und dokumentiert wurde.
Suchen Sie in der verfügbaren Onlineunterstützung einschließlich der Hinweise und Tipps, der technischen Hinweise und Fixes. Wenn Ihr Problem nicht dokumentiert ist, lesen Sie Hilfe von IBM zur Fehlerbehebung.
Anwendung wird nicht angezeigt
Die Anwendung wurde mit dem Tool wsadmin installiert, aber die Anwendung wird nicht unter
angezeigt.- Vergewissern Sie sich, dass das Anwendungsunterverzeichnis im Verzeichnis Stammverzeichnis_des_Anwendungsservers/installedApps enthalten ist.
- Führen Sie den Befehl $AdminApp list aus, und vergewissern Sie
sich, dass die Anwendung nicht angezeigt wird.
- Führen Sie im Verzeichnis bin den Befehl wsadmin.bat oder wsadmin.sh aus.
- Geben Sie in der wsadmin-Eingabeaufforderung den Befehl $AdminApp list ein, und vergewissern Sie sich, dass die fehlerhafte Anwendung nicht angezeigt wird.
- Installieren Sie die Anwendung mit dem Tool wsadmin erneut. Führen Sie den Befehl $AdminConfig save im Tool wsadmin aus, bevor Sie den Prozess beenden.
Eine implementierte Anwendung kann nicht gesichert werden
Wenn Sie eine implementierte Anwendung nicht sichern können, ist es möglich, dass zu viele Dateien geöffnet sind und der Grenzwert des Betriebssystems überschritten ist.
![[Linux]](../images/linux.gif)
ulimit -n Anzahl_der_Dateien
Nur Root ist berechtigt, die maximale Anzahl der Dateien pro Prozess anzupassen. Führen Sie die folgenden Schritte aus, um die Anwendung so zu ändern, dass Dateien ordnungsgemäß geschlossen werden:
- Nachdem Sie eine Datei geöffnet und Ihre Arbeit beendet haben, rufen Sie die Methode close für die Datei auf, um die Dateikennung freizugeben und an das Betriebssystem zurückzugeben.
- Wenn Sie beispielsweise die Klassen java.io.FileInputStream und FileOutputStream verwenden, können Sie ihre Methode close verwenden, um alle Systemressourcen freizugeben, die dem Datenstrom zugeordnet sind.
![[Windows]](../images/windows.gif)
Im Assembliertool, in der Administrationskonsole oder im Tool wsadmin wird die Ausnahme "java.lang.RuntimeException: Failed_saving_bytes_to_wor_ERROR_" angezeigt.
Wenn dieser Fehler auftritt, wenn Sie implementierten Code in einem Assembliertool generieren, eine Anwendung oder ein Modul in der Administrationskonsole installieren oder mit dem Tool wsadmin eine Anwendung oder ein Modul installieren, wurde möglicherweise die zulässige Länge für temporäre Systemdateien überschritten.
Überprüfen Sie zur Lösung des Problems die Umgebungsvariablen TEMP und TMP für das System. Lange Umgebungsvariablen erhöhen die Pfadlänge von Dateien, auf die das EJB-Implementierungstool zugreift.
- Stoppen Sie alle Prozesse von WebSphere Application Server, und schließen Sie alle DOS-Eingabeaufforderungen.
- Legen Sie für die Umgebungsvariablen TEMP und TMP kurze Werte fest, z. B. C:\TMP oder C:\TEMP.
- Installieren Sie die Anwendung erneut.
WASX7015E Fehler beim Ausführen des wsadmin-Befehls $AdminApp installInteractive oder $AdminApp install
Für diesen Fehler gibt es zwei mögliche Ursachen:
- Der vollständige Fehlertext kann wie folgt lauten:Der Dateiname und Pfadname wurden falsch angegeben. Da der Pfad Leerzeichen enthielt, wurde er vom Programm wsadmin als mehrere Parameter interpretiert.
WASX7015E: Beim Ausführen des Befehls "$AdminApp installInteractive C:/Documents and Settings/ myUserName/Desktop/MyApp/myapp.ear"; ist eine Ausnahme eingetreten. Informationen zur Ausnahme: com.ibm.bsf.BSFException: error while evaluating Jacl expression: can't find method "installInteractive" with 3 argument(s) for class "com.ibm.ws.scripting.AdminAppClient"
WASX7015E: Beim Ausführen des Befehls "$AdminApp installInteractive Documents and Settings/ myUserName/Desktop/MyApp/myapp.ear"; ist eine Ausnahme eingetreten. Informationen zur Ausnahme: com.ibm.bsf.BSFException: error while evaluating Jacl expression: can't find method "installInteractive" with 3 argument(s) for class "com.ibm.ws.scripting.AdminAppClient"
Geben Sie den Pfad der .ear-Datei richtig ein. In diesem Fall müssen Sie den Pfad in Anführungszeichen setzen:
$AdminApp installInteractive "C:\Documents and Settings\myUserName\Desktop\MyApps\myapp.ear"
$AdminApp installInteractive "Documents and Settings/myUserName/Desktop/MyApps/myapp.ear"
- Der vollständige Fehlertext kann wie folgt lauten:Der Anwendungspfad wurde falsch angegeben. In diesem Fall müssen Sie Schrägstriche als Trennzeichen im Pfad verwenden.
WASX7015E: Exception running command: "$AdminApp installInteractive c:\MyApps\myapp.ear "; Informationen zur Ausnahme: com.ibm.ws.scripting.ScriptingException: WASX7115E: Die Eingabedatei kann nicht gelesen werden: "c:\WebSphere\AppServer\bin\MyAppsmyapp.ear"
WASX7015E: Beim Ausführen des Befehls "$AdminApp installInteractive MyApps\myapp.ear "; ist eine Ausnahme eingetreten. Informationen zur Ausnahme: com.ibm.ws.scripting.ScriptingException: WASX7115E: Die Eingabedatei kann nicht gelesen werden: "WebSphere\AppServer\bin\MyAppsmyapp.ear"
CMP- oder BMP-Entity-Bean kann nicht in einem Modul der EJB Version 3.0 installiert werden
Wenn Sie ein Modul der EJB Version 3.0 installieren, das eine CMP- (Container-Managed Persistence, über Container realisierte Transaktionspersistenz) oder BMP-Entity-Bean (Bean-Managed Persistence, über JavaBeans realisierte Transaktionspersistenz) enthält, scheitert die Installation.
Das Produkt bietet keine Unterstützung für die Installation von Anwendungen, die eine in ein Modul der Version EJB 3.0 gepackte CMP- oder BMP-Entity-Bean enthält. Sie müssen CMP- oder BMP-Entity-Beans in ein Modul der Version EJB 2.1 oder früher packen.
- Packen Sie die CMP- oder BMP-Entity-Beans in Module der EJB Version 2.1 oder früher.
- Versuchen Sie, Ihre Anwendung mit den Modulen der EJB Version 2.1 oder früher zu installieren.
Die von einem Assembliertool generierte DDL-Datei (Data Definition Language) löst auf der Zielplattform einen SQL-Fehler aus
- Überprüfen Sie die DDL-Anweisungen auf Abhängigkeiten von bestimmten Benutzer-IDs, und Kennwörtern, und führen Sie die entsprechenden Korrekturen durch.
- Überprüfen Sie die DDL-Anweisungen auf Abhängigkeiten von bestimmten Servernamen, und führen Sie die entsprechenden Korrekturen durch.
- Lesen Sie die Nachrichtenreferenz des Herstellers, um im Falle von SQL-Fehlern Informationen zu Fehlerursachen und vorgeschlagenen Aktionen zu erhalten. Für IBM® DB2 können Sie die Nachrichtenreferenzen online anzeigen.
SQL0104N An unexpected token "CREATE TABLE AGENT (COMM DOUBLE, PERCENT DOUBLE, P"
was found following " ". Expected tokens may include: " ".
SQLSTATE=42601
Editieren Sie die DDL im vi-Editor, und entfernen Sie dabei das Zeichen Ctl-M am Anfang jeder Zeile.
Bei Linux müssen Sie den Implementierungscode für die EAR-Datei der Anwendung auf einer Linux-Plattform erneut generieren.
Sie können EDTF zum Editieren der Datei verwenden.
ADMA0004E: Validierungsfehler
AppDeploymentException: [ADMA0014E: Die Validierung ist fehlgeschlagen.
ADMA0004E: Validierungsfehler in Task "Standarddatenquelle für EJB-Module angeben".
Der JNDI-Name für Modul "beannameBean Jar" mit URI Dateiname.jar,META-INF/ejb-jar.xml. wurde nicht
angegeben.
Sie haben die Datenquelle für die einzelnen, zu diesem Modul gehörenden CMP-Beans nicht
angegeben. Geben Sie die Datenquelle für jede CMP-Bean ein, oder
geben Sie die Standarddatenquelle für das gesamte Modul an.]
Möglicherweise ist das Problem darauf zurückzuführen, dass in WebSphere Application Server
Version
4.0 die Definition einer Datenquelle für jede CMP-Bean in der JAR-Datei verbindlich ist. In den Versionen 5.0 und höher können Sie eine Datenquelle für eine CMP-Bean oder eine Standarddatenquelle für alle
CMP-Beans in der JAR-Datei angeben. Während des
Installationsvorgangs, z. B. bei der Ausführung des Installationsassistenten in der
Administrationskonsole, sind die Felder der Datenquelle optional, aber bei der am Ende
des Installationsvorgangs durchgeführten Validierung wird geprüft, ob mindestens
eine der oben genannten Datenquellen angegeben ist.Gehen Sie, um den Fehler zu beheben, die Installation noch einmal durch, und geben Sie eine Standarddatenquelle oder eine Datenquelle für die einzelnen CMP-Enterprise-Beans an.
Führen Sie den Befehl $AdminApp installInteractive Dateiname aus, wenn Sie möchten, dass das System bei der Installation zur Eingabe der Datenquellen auffordert, oder um die Datenquellen in einer Antwortdatei bereitzustellen.
Geben Sie Datenquellen als Option für den
Befehl $AdminApp install an.
Details zur Syntax enthält der Artikel Unternehmensanwendungen mit wsadmin-Scripting installieren.
Die Ressource WEB-INF/ibm-web-bnd.xmi in der Archivdatei kann nicht geladen werden
Die Webanwendung tmp.war wird in WebSphere Application Server Version 5.0 und 5.1 installiert, aber nicht in einem Server von WebSphere Application Server Version 6.0. Die Anwendung kann nicht installiert werden, weil die Datei WEB-INF/ibm-web-bnd.xmi Tags des Typs xmi enthält, die vom zugrunde liegenden WCCM-Modell nicht mehr erkannt werden.
Die folgenden Fehlernachrichten werden angezeigt:
IWAE0007E Could not load resource "WEB-INF/ibm-web-bnd.xmi" in archive "tmp.war"
[2/24/05 14:53:10:297 CST] 000000bc SystemErr R
AppDeploymentException:
com.ibm.etools.j2ee.commonarchivecore.exception.ResourceLoadException:
IWAE0007E Could not load resource "WEB-INF/ibm-web-bnd.xmi" in archive "tmp.war"
[2/24/05 14:53:10:297 CST] 000000bc SystemErr R
com.ibm.etools.j2ee.commonarchivecore.exception.ResourceLoadException:
IWAE0007E Could not load resource "WEB-INF/ibm-web-bnd.xmi" in archive "tmp.war"
!Stack_trace_of_nested_exce!
com.ibm.etools.j2ee.exception.WrappedRuntimeException: Exception occurred loading
WEB-INF/ibm-web-bnd.xmi
!Stack_trace_of_nested_exce!
Sie können dieses Problem umgehen, indem Sie das Tag xmi:type=EJBLocalRef aus der Datei ibm-web-bnd.xmi entfernen. Das Entfernen dieses Tag hat keine Auswirkung auf die Anwendung, weil das Tag zuvor für den Abgleich des dokumentübergreifenden Referenztyps verwendet wurde. Die Anwendung funktioniert jetzt in WebSphere Application Server Version 5.1 und höher.

Ein Modul von Java EE Version 5 oder einer höheren Version kann jedoch in einer Anwendung, die Dateien einer älteren Java EE-Version als Version 5 enthält, koexistieren.
Die Dateien ibm-webservices-ext.xmi, ibm-webservices-bnd.xmi, ibm-webservicesclient-bnd.xmi, ibm-webservicesclient-ext.xmi und ibm-portlet-ext.xmi können die Dateierweiterung ".xmi" weiterhin verwenden.
sptcfgFehlernachricht bei Installation: Es wurde kein gültiges Ziel im ObjectName anObject für Modul module_name angegeben
Dieser Fehler kann in einer Clusterumgebung auftreten, wenn die Zielzelle, der Zielknoten, der Zielserver oder der Zielcluster, in der bzw. dem die Anwendung installiert werden soll, nicht richtig angegeben ist. Das ist z. B. der Fall, wenn die Zielangabe einen Orthographiefehler enthält.
Zur Behebung dieses Fehlers müssen Sie die Zielnamen gegen die Topologie von WebSphere Application Server prüfen und sie dann korrigiert erneut eingeben.
Die Option addNode -includeapps zum Hochladen aller Anwendungen auf den Deployment Manager erscheint nicht
Dieser Fehler kann auftreten, wenn einige oder alle Anwendungen auf dem Zielknoten bereits auf den Deployment Manager hochgeladen wurden. Das Programm addNode stellt fest, welche Anwendung bereits installiert wurden und lädt die entsprechenden Anwendungen nicht noch einmal hoch.
Durchsuchen Sie die Konfiguration des Deployment Manager in der Administrationskonsole, und prüfen Sie, welche Anwendungen bereits installiert wurden.
Der Fehler "Zeitlimitüberschreitung!!!" wird angezeigt beim Versuch, eine Unternehmensanwendung in der Administrationskonsole zu installieren.
Dieser Fehler kann auftreten, wenn Sie versuchen, eine nicht implementierte Unternehmensanwendung zu installieren.
- Öffnen Sie die Datei Dateiname.ear in einem Assembliertool, und klicken Sie anschließend auf Implementieren. Es wird eine Datei mit einem Namen wie Deployed_Dateiname.ear erstellt.
- Installieren Sie in der Administrationskonsole die implementierte EAR-Datei.
Beim Implementieren einer Anwendung, die ein Webmodul enthält, wird eine Nachricht NameNotFoundException gesendet
Wenn Sie die EJB-Implementierung während der Anwendungsinstallation durchführen möchten und die Installation mit der Nachricht NameNotFoundException fehlschlägt, vergewissern Sie sich, dass die Eingabe-JAR- bzw. -EAR-Datei keine Quellendateien enthält. Sollte die Datei Quellendateien enthalten, erstellen die Tools für die Implementierung der EJB die Datei erneut, bevor Sie den Implementierungscode generieren.
Sie können dieses Problem umgehen, indem Sie die Quellendateien entfernen oder alle abhängigen Klassen und Ressourcendateien in den Klassenpfad einfügen. Andernfalls können die Quellendateien bzw. die nicht vorhandenen abhängigen Klassen und Ressourcendateien zu Fehlern beim erneuten Erstellen der Anwendung im Server führen.
![[Windows]](../images/windows.gif)
Bei der Anwendungsinstallation löst der Aufruf von EJBdeploy eine Ausnahme aus
Wenn Sie angeben, dass das EJB-Implementierungstool während der Anwendungsinstallation ausgeführt werden soll und die Installation scheitert, weil die Befehlszeile zu lang ist, ist das Problem darauf zurückzuführen, dass der während der Installation generierte Installationsbefehl die Zeichenbegrenzung für die Befehlszeile auf der Windows-Plattform überschreitet.
Sie können dieses Problem vermeiden, indem Sie den Namen der EAR-Datei, den Namen der JAR-Datei in der EAR-Datei, den Klassenpfad oder andere Optionen für die Implementierung verkürzen oder das %TEMP%-Verzeichnis des Windows-Systems ändern, um den Pfad zu verkürzen.
Beim Installieren einer für Version 5.x oder früher generierten EJB-JAR-Datei treten Kompilierfehler auf, und das EJB-Deployment schlägt fehl
Wenn Sie eine alte Anwendung mit EJB-Modulen installieren, die für WebSphere Application Server Version 5.x oder früher erstellt wurden, treten Kompilierfehler auf und die Implementierung der EJB schlägt fehl. Die EJB-JAR-Datei enthält eine Java-Quelle für den alten generierten Code. Die alte Java-Quelle wurde für Version 5.x oder früher generiert. Bei der Immplementierung in WebSphere Application Server Version 6.x oder höher wird diese jedoch mit den JAR-Dateien der Laufzeitumgebung von Version 6.0 oder höher kompiliert.
Sie können dieses Problem umgehen, indem Sie alle .java-Dateien aus der Anwendungsdatei mit der Erweiterung .ear entfernen. Nachdem Sie alle Java-Quellendateien entfernt haben, können Sie die Anwendung problemlos in einem Server implementieren.
Beim Hochladen von Dokumentation schlägt addNode -includeapps mit einer Ausnahme vom Typ OutOfMemoryError fehl
- Wenn Sie einen Knoten des Basisservers mit dem Befehl addNode hinzufügen,
fügen Sie im Script addNode den folgenden Parameter ein:
-XmxGröße
- Wenn Sie über die Administrationskonsole einen Knoten hinzufügen, erhöhen Sie den Wert
der Eigenschaft maximumHeapSize in den JVM-Einstellungen des
Deployment Manager, und starten Sie anschließend den Deployment Manager erneut.
Ausführliche Informationen hierzu finden Sie im Artikel Befehl "addNode" und im Artikel JVM-Einstellungen.
![[Windows]](../images/windows.gif)
"%JAVA_HOME%\bin\java" -Xmx512m %DEBUG% %WAS_TRACE% %CONSOLE_ENCODING%
"%CLIENTSOAP%" "%CLIENTSAS%" "-classpath" "%WAS_CLASSPATH%"
"-Dws.ext.dirs=%WAS_EXT_DIRS%" %USER_INSTALL_PROP%
-Dwas.install.root=%WAS_HOME%" "com.ibm.ws.bootstrap.WSLauncher"
"com.ibm.ws.management.tools.NodeFederationUtility" "%CONFIG_ROOT%" "%WAS_CELL%"
"%WAS_NODE%" %*
Ausnahme vom Typ "OutOfMemory" im Deployment Manager
Wenn Sie eine Ausnahme vom Typ "OutOfMemory" empfangen, wenn Sie versuchen, Anwendungen mit großen EAR-Dateien zu installieren, versuchen Sie, die maximale Heap-Speichergröße für den Deployment Manager zu erhöhen.
Überprüfen Sie die Optionen, die Sie auf der Seite "Java Virtual Machine" der Administrationskonsole angegeben haben. Erhöhen Sie den Wert für maximumHeapSize in den JVM-Einstellungen des Deployment Manager. Starten Sie anschließend den Deployment Manager erneut, und wiederholen Sie die Anwendungsinstallation.
Nach der Installation der Anwendung auf einer anderen Maschine kann die Anwendung nicht ausgeführt werden
Verwendet Ihre Anwendung Ressourcen auf Anwendungsebene, müssen die zugehörigen Knoteninformationen auf Anwendungsebene richtig sein, damit die Anwendung ordnungsgemäß ausgeführt werden kann.
Wenn Sie Ressourcen auf Anwendungsebene zu einer Anwendung hinzufügen und die Anwendung auf einer Maschine implementieren, vergewissern Sie sich, dass die Knoteninformationen auf Anwendungsebene richtig sind. Andernfalls wird die Anwendung bei der Installation auf einer anderen Maschine im falschen Verzeichnis installiert, und die Anwendung wird nicht ordnungsgemäß ausgeführt.
Sie können die Knoteninformationen auf Anwendungsebene mit einem Assembliertool aktualisieren. Aktualisieren Sie den Knotennamen (nodeName) für deploymentTargets in der Datei deployment.xml unter "ibmconfig". Vergewissern Sie sich auch, dass die Eigenschaft "binariesURL" für deployedObject in der Datei deployment.xml den richtigen Pfad hat.
Während der Anwendungsaktualisierung ersetzt eine einzelne Datei alle Anwendungsdateien
Wenn Sie die Option Einzelne Datei ersetzen oder hinzufügen des Assistenten für Anwendungsaktualisierung auswählen und die gegenwärtig implementierte Anwendung aus verschiedenen Dateien besteht, geben Sie für Geben Sie den Pfad der zu ersetzenden bzw. hinzuzufügenden Datei ausgehend von der installierten Anwendungsarchivdatei an den vollständigen Pfadnamen der zu ersetzenden oder hinzuzufügenden Datei an.
Ein vollständiger Pfadname hat normalerweise die Struktur Verzeichnispfad/Dateiname und sieht etwa wie folgt aus:
PriceChangeSession.jar/priceChangeSession/priceChangeSessionBean.class
Geben Sie unter Geben Sie den Pfad der zu ersetzenden bzw. hinzuzufügenden Datei ausgehend von der installierten Anwendungsarchivdatei an nur den vollständigen Pfadnamen der zu ersetzenden oder hinzuzufügenden Datei an. Geben Sie z. B. nicht nur einen Verzeichnispfad an:
PriceChangeSession.jar/priceChangeSession
Wenn Sie nicht den vollständigen Pfadnamen angeben, werden möglicherweise alle Dateien im Verzeichnis der gegenwärtig implementierten Anwendung durch die neue einzelne Datei, die unter Pfad der Datei angeben angegeben wurde, ersetzt.