CrystalEnterprise.getSessionMgr() ändert den Java-System.out-Stream
Posted: 13 Jan 2025, 16:28
Ich habe ein JBoss EAP 6.4.8 und ein zustandsloses EJB, das nichts weiter tut, als eine Session_Mgr-Instanz abzurufen.
Die ursprüngliche Aufgabe dieses EJB bestand darin, ein Benutzerkennwort zu ändern, was einwandfrei funktioniert.
Ich bemerkte jedoch, dass nach dem Aufruf von CrystalEnterprise.getSessionMgr() jedes System .out (und auch jeder log4j-Logger) erzeugt keine Ausgabe mehr.
Der obige Code gibt nur „BEFORE“ und kein „AFTER“ oder „EXCEPTION“ aus
Aber mein Debugger beweist das System.out.println("AFTER") wird aufgerufen.
Übrigens: Der Aufruf dieses Codeabschnitts direkt aus einer Java-Hauptmethode heraus funktioniert wie erwartet.
Ich erhalte eine „VOR“- und „NACHHER“-Ausgabe.
Weiß jemand, was hier passiert?
Code: Select all
public boolean changePassword(String user, String oldPw, String newPw, String cmsName, String authType)
{
boolean success = false;
try
{
System.out.println("BEFORE");
ISessionMgr sessionMgr = CrystalEnterprise.getSessionMgr();
System.out.println("AFTER");
// commented out
// IEnterpriseSession session = sessionMgr.logon(user, oldPw, cmsName, authType);
// session.getUserInfo().setPassword(oldPw, newPw);
}
catch(Exception e)
{
System.out.println("EXCEPTION");
LOG.error("Error changing password for BO-CMS and user '" + user + "'", e);
}
return success;
}
Ich bemerkte jedoch, dass nach dem Aufruf von CrystalEnterprise.getSessionMgr() jedes System .out (und auch jeder log4j-Logger) erzeugt keine Ausgabe mehr.
Der obige Code gibt nur „BEFORE“ und kein „AFTER“ oder „EXCEPTION“ aus
Aber mein Debugger beweist das System.out.println("AFTER") wird aufgerufen.
Übrigens: Der Aufruf dieses Codeabschnitts direkt aus einer Java-Hauptmethode heraus funktioniert wie erwartet.
Ich erhalte eine „VOR“- und „NACHHER“-Ausgabe.
Weiß jemand, was hier passiert?