EGL-Systemlaufzeitnachrichten für Java anpassen

Wenn zur Java™-Laufzeit ein Fehler auftritt, wird standardmäßig eine EGL-Systemnachricht angezeigt. Sie können für jede dieser Systemnachrichten oder für eine Untergruppe von Nachrichten eine angepasste Nachricht angeben.

Die angepassten Nachrichten werden in einer Eigenschaftendatei gespeichert, die Sie in der Java-Laufzeiteigenschaft 'vgj.messages.file' angeben können. Diese Eigenschaft wird in der Erstellungsdeskriptoroption 'userMessageFile' festgelegt. Weitere Informationen zum Format einer Java-Eigenschaftendatei finden Sie im Kapitel Programmeigenschaftendatei.

Wenn eine Nachricht erforderlich ist, wird in EGL zuerst die in 'vgj.messages.file' angegebene Eigenschaftendatei durchsucht. In EGL wird die Nachrichten-ID der erforderlichen Nachricht mit den IDs der Nachrichten in der Eigenschaftendatei vergleichen. Wenn in EGL in der Eigenschaftendatei eine Nachricht mit einer passenden ID gefunden wird, wird diese Nachricht verwendet. Wenn in der Eigenschaftendatei keine Nachricht mit einer passenden ID vorhanden ist, wird in EGL die Standardsystemnachricht verwendet. Sie können auch die Systemfunktion 'sysLib.getMessage' zum Zurückgeben einer Nachricht aus der in 'vgj.messages.file' angegebenen Eigenschaftendatei verwenden.

Viele Systemnachrichten enthalten Platzhalter für Nachrichteneinfügungen, die in EGL zur Laufzeit empfangen werden. Wenn durch Ihren Code zum Beispiel eine ungültige Datumsmaske an eine Systemfunktion übergeben wird, enthält die Nachricht zwei Platzhalter: einen (Platzhalter '0') für die Datumsmaske selbst und den anderen (Platzhalter '1') für den Namen der Systemfunktion. Im Format der Eigenschaftendatei sieht der Eintrag für die Standardnachricht wie folgt aus:
  EGL0049E = Overflow when assigning {0} to {1}.
Sie können die Schreibung der Nachricht ändern, um alle oder einige Platzhalter in einer beliebigen Reihenfolge einzufügen. Die Nummerierung der Platzhalter kann jedoch nicht hinzugefügt oder geändert werden. Gültige Beispiele:
  EGL0049E = Tried to assign {0} to {1} and failed.

  EGL0049E = {1} = {0} : Overflow on assignment.

Das Programm wird beendet, wenn die in der Eigenschaft 'vgj.messages.file' angegebene Datei nicht geöffnet werden kann.

Beachten Sie, dass der erste Platzhalter für Systemnachrichten, die für COBOL generiert werden, {1} statt {0} ist.

Weitere Informationen enthält die Dokumentation zur Sprache Java:

Angepasste Nachrichtendateien erstellen

Sie können Eigenschaftendateien mit angepassten Nachrichten erstellen, die angezeigt werden, wenn zur Java-Laufzeit Fehler auftreten. Die Standardsystemnachrichten werden durch diese Nachrichten ersetzt.

  1. Gehen Sie wie folgt vor, um eine Eigenschaftendatei für die angepassten Nachrichten zu erstellen:
    1. Klicken Sie im Projektexplorer mit der rechten Maustaste auf den Ordner 'Java Resources' Ihres EGL-Projekts.
    2. Klicken Sie auf 'Neu' > 'Andere'.
    3. Erweitern Sie im Fenster 'Neu' die Anzeige für die Überschrift 'Allgemein' und klicken Sie auf 'Datei'.
    4. Klicken Sie auf 'Weiter'.
    5. Stellen Sie sicher, dass im Feld 'Übergeordneten Ordner eingeben oder auswählen' der Ordner 'Java Resources' Ihres Projekts ausgewählt ist.
    6. Geben Sie im Feld 'Dateiname' einen Namen für die Eigenschaftendatei ein. Dieser muss mit .properties enden. messages.properties ist ein Beispiel für einen gültigen Dateinamen.
    7. Klicken Sie auf 'Fertig stellen'. Die neue Datei wird erstellt und im Editor geöffnet.
  2. Gehen Sie zum Hinzufügen angepasster Nachrichten zur Nachrichtendatei wie folgt vor:
    1. Suchen Sie die Nachrichten-ID der zu ersetzenden Systemnachricht oder erstellen Sie eine neue Nachrichten-ID, wenn Sie eine neue Nachricht hinzufügen.

      Die Dokumentation enthält Informationen zu Systemnachrichten, deren Nachrichten-IDs und Platzhaltern in einer Nachricht. Lesen Sie dazu das Kapitel ../../com.ibm.egl.messages.doc/topics/rjavrun0001.html.

    2. Fügen Sie der Nachrichtendatei im folgenden Format eine Zeile hinzu:
      nachrichtenID = angepassteNachricht
      nachrichtenID
      Die ID der Systemnachricht.
      angepassteNachricht
      Die angepasste Nachricht, die anstelle der Systemnachricht angezeigt werden soll, einschließlich aller in der Nachricht enthaltenen Platzhalter.

      Die Systemnachricht mit der ID EGL0049E, die standardmäßig Overflow when assigning {0} to {1}. lautet, wird durch die folgende Zeile der Eigenschaftendatei ersetzt:

      EGL0049E = Tried to assign {0} to {1} and failed.

      In diesem Beispiel sind die Codezeichenfolgen {0} und {1} Platzhalter für Nachrichteneinfügungen, die in EGL zur Laufzeit abgerufen werden. Diese Platzhalter sind in Ihrer angepassten Nachricht optional.

    3. Speichern und schließen Sie die Nachrichtendatei nach dem Hinzufügen von Nachrichten.
  3. Legen Sie die Erstellungsdeskriptoroption 'genProperties' auf GLOBAL oder PROGRAM fest.
  4. Geben Sie mithilfe einer der folgenden Methoden die Nachrichtendatei an:
    • Legen Sie die Erstellungsdeskriptoroption 'userMessageFile' auf den Namen der Nachrichtendatei ohne die Erweiterung .properties fest. Wenn die Nachrichtendatei zum Beispiel messages.properties heißt, legen Sie die Erstellungsdeskriptoroption 'userMessageFile' auf messages fest.

      Mit der Erstellungsdeskriptoroption 'userMessageFile' wird die Java-Laufzeiteigenschaft 'vgj.messages.file' festgelegt, durch die die Nachrichtendatei angegeben wird. Diese Methode kann für alle Typen von EGL-Projekten verwendet werden.

    • Legen Sie die Java-Laufzeiteigenschaft 'vgj.messages.file' im J2EE-Implementierungsdeskriptor (nicht im EGL-Implementierungsdeskriptor) fest, um den Namen der Nachrichtendatei anzugeben. Diese Methode kann nur für Projekte angewendet werden, die im J2EE-Framework verwendet werden. Führen Sie die folgenden Schritte aus, um die Laufzeiteigenschaft 'vgj.messages.file' im J2EE-Implementierungsdeskriptor festzulegen:
      1. Klicken Sie im Projektexplorer auf den J2EE-Implementierungsdeskriptor des Projekts. Der Implementierungsdeskriptor wird im Editor für Implementierungsdeskriptoren geöffnet.
      2. Klicken Sie auf die Registerkarte 'Variablen'.
      3. Klicken Sie unter 'Umgebungsvariablen' auf 'Hinzufügen'. Daraufhin wird das Fenster 'Umgebungseintrag hinzufügen' geöffnet.
      4. Geben Sie im Feld 'Name' vgj.messages.file ein.
      5. Wählen Sie im Feld 'Typ' 'String' aus.
      6. Geben Sie im Feld 'Wert' den Namen der Nachrichtendatei ohne die Erweiterung .properties ein. Wenn die Nachrichtendatei zum Beispiel messages.properties heißt, geben Sie messages ein.
      7. Klicken Sie auf 'Fertig stellen'.
    • Legen Sie die Eigenschaft 'vgj.messages.file' in der Datei 'rununit.properties' auf den Namen der Nachrichtendatei fest. Diese Methode kann nur für Projekte angewendet werden, die im J2EE-Framework verwendet werden. Führen Sie die folgenden Schritte aus, um die Laufzeiteigenschaft 'vgj.messages.file' in der Datei 'rununit.properties' festzulegen:
      1. Öffnen Sie die Datei 'rununit.properties' im Ordner 'Java Resources'. Diese Datei wird erstellt, wenn Sie das erste Mal eine Datei generieren, während die Eigenschaftengruppe 'genProperties' auf GLOBAL festgelegt ist. Wenn die Gruppe 'genProperties' beim Generieren auf PROGRAM festgelegt ist, wird die Eigenschaftendatei 'pgmNameOrAlias.properties' genannt und im Java-Paket des generierten Programms abgelegt.
      2. Fügen Sie in der Eigenschaftendatei den folgenden Code hinzu:
        vgj.messages.file = messageFileName
      3. Ersetzen Sie messageFileName durch den Namen der Nachrichtendatei ohne die Erweiterung .properties. Wenn die Nachrichtendatei zum Beispiel messages.properties heißt, geben Sie vgj.messages.file = messages ein.
      4. Speichern und schließen Sie die Eigenschaftendatei.
  5. Wenn Sie Nachrichten in andere Sprachen lokalisieren möchten, erstellen Sie für diese Sprachen zusätzliche Eigenschaftendateien:
    1. Erstellen Sie neue Eigenschaftendateien für alle Sprachen, die Sie bereitstellen möchten, indem Sie ein der jeweiligen Sprache entsprechendes Suffix für die Ländereinstellung zu den neuen Dateien hinzufügen. Wenn die ursprüngliche Eigenschaftendatei messages.properties heißt, könnte die Datei mit deutschen Nachrichten messages_de.properties heißen. Weitere Informationen zu Ländereinstellungen finden Sie im Kapitel Ländereinstellungen für Ressourcenpakete.
    2. Wiederholen Sie die in der ersten Eigenschaftendatei verwendeten Nachrichten-IDs in jeder neuen Datei.
    3. Übersetzen Sie in den neuen Dateien den Text der Nachricht, aber ändern Sie dabei nicht die Nachrichten-ID.
    4. Legen Sie fest, dass für die Anwendung die angegebene Sprache verwendet wird, indem Sie entweder mithilfe der Erstellungsdeskriptoroption 'targetNLS' den Namen der Sprache generieren oder indem Sie die Sprache mit der Systemfunktion 'sysLib.setLocale()' festlegen.
  6. Generieren Sie alle EGL-Dateien für das Projekt.

Feedback