
Ich habe einen sehr merkwürdigen Fehler, den ich nicht lösen kann.
Ich habe eine Unternehmensanwendung. Die Build-EAR-Datei kann auch mit WLST oder der Weblogic Deployer-Befehlszeile erfolgreich bereitgestellt werden.
Die Version der Webanwendung wird mithilfe von „Weblogic-Application-Version“ in der Datei Manifest.mf verwaltet.
Wenn ich jedoch versuche, die EAR mit dem WLST-Befehl „redeploy(...)“ erneut bereitzustellen, erhalte ich die folgende Fehlermeldung
java.io.IOException: java.io.CharConversionException: Fehlerhaftes UTF-8-Zeichen – fehlt eine XML-Kodierungsdeklaration? Die erneute Bereitstellung der Anwendung ist mit dem Status „Fehlgeschlagen“ fehlgeschlagen.
Das Merkwürdige ist, dass die erneute Bereitstellung der EAR-Datei problemlos funktioniert, wenn ich den Befehlszeilen-Deployer „java weblogic.Deployer -redeploy...“ verwende.
Auch wenn ich den Bereitstellungsbefehl „deploy(....)“ verwende, wird die Bereitstellung erfolgreich durchgeführt und die alte Version außer Betrieb gesetzt.
Idealerweise würde ich gerne den Redeploy-Befehl in WLST verwenden, um sicherzustellen, dass die alte Version ordnungsgemäß außer Dienst gestellt wird.
- Hat jemand einen Vorschlag, was dieses Problem verursachen könnte?
- Wenn WeApps versioniert sind, macht „deploy(...)“ dasselbe wie „redeploy(...)“ in wlst?
Antwort1
Ich habe herausgefunden, was hier passiert ist, und werde es hier posten, falls jemand das gleiche Problem hat.
Ich habe den wlst-Befehl verwendet:
redeploy(<app-name>, <app-path>....)
Wo war der Speicherort der EAR-Datei? Das ist nicht korrekt, da das zweite Argument der Planpfad sein sollte (siehehttp://docs.oracle.com/cd/E15523_01/web.1111/e13813/reference.htm#WLSTC222)
Ich wechsle zur Verwendung von Namensargumenten nach dem Vorbild von
redeploy(appName=<app-name>, appPath=<appPath>, ...)
was erfolgreich funktioniert hat. Die Fehlermeldung war äußerst wenig hilfreich.