InvalidCoercionException während der Dokumentzuordnung in Adobe Experience Manager Forms JEE
In Adobe Experience Manager Forms JEE kann ein Workbench-Prozess mit InvalidCoercionException fehlschlagen, wenn versucht wird, einer Variablen, die eine org.w3c.dom.Document erwartet, einen com.adobe.idp.Document zuzuweisen. Dies tritt auf, wenn Prozesszuordnungen oder benutzerdefinierter Code inkompatible Dokumenttypen verwenden und Workbench versucht, eine nicht unterstützte implizite Konvertierung durchzuführen. Um dieses Problem zu beheben, richten Sie die Dokumenttypen aus, die von Prozessvariablen, Service-Eingaben, Ausgaben und benutzerdefiniertem Code verwendet werden.
Beschreibung description
Umgebung
Adobe Experience Manager (AEM) Forms JEE 6.5.0
Problem/Symptome
-
Ein Workbench-Prozess schlägt bei einigen Datensätzen mit dem folgenden Fehler fehl:
com.adobe.idp.dsc.util.InvalidCoercionException: Cannot coerce object: of type: com.adobe.idp.Document to type: interface org.w3c.dom.Document -
Die Prozessausgabevariable (z. B.
Out1.xml) wird alscom.adobe.idp.Documentbereitgestellt. -
Die empfangende Workbench-Variable oder der nachgelagerte Service erwartet
org.w3c.dom.Document. -
Workbench versucht während der
SetValueServiceeine implizite Typkonvertierung. Da diese Konvertierung nicht unterstützt wird, löst der Prozess die Ausnahme aus.
Ursache
Im Workbench-Prozesszuordnung oder im benutzerdefinierten Code liegt eine Datentypabweichung vor. Ein Adobe-Dokumenttyp (com.adobe.idp.Document) wird einer Variablen zugewiesen, die ein W3C-XML-Dokument (org.w3c.dom.Document) erwartet. Workbench unterstützt keine implizite Konvertierung zwischen diesen Typen, was zu der Ausnahme führt.
Lösung resolution
Führen Sie zur Behebung des Problems folgende Schritte aus:
-
Überprüfen Sie den Workbench-Prozess, um festzustellen, wo ein
com.adobe.idp.Documenteiner Variablen oder einem Service zugewiesen oder zugeordnet ist, die bzw. der eineorg.w3c.dom.Documenterwartet. -
Die Datentypen so ausrichten, dass sowohl die Quell- als auch die Zielvariablen denselben Dokumenttyp verwenden, entweder
com.adobe.idp.Documentoderorg.w3c.dom.Document. -
Falls verschiedene Typen erforderlich sind:
- Konvertieren Sie
com.adobe.idp.Documentinorg.w3c.dom.Document, indem Sie den Dokument-Stream als XML lesen und analysieren. - Falls erforderlich, konvertieren Sie
org.w3c.dom.Documentfür nachgelagerte Adobe Forms-Vorgänge zurück incom.adobe.idp.Document. - Entfernen Sie alle direkten oder impliziten Zuweisungen zwischen diesen beiden Typen.
- Konvertieren Sie
-
Stellen Sie das aktualisierte Workbench-Programm oder den aktualisierten Prozess erneut bereit.
-
Testen Sie den Prozess mit repräsentativen Eingabedokumenten.
-
Stellen Sie sicher, dass der
InvalidCoercionExceptionnicht mehr auftritt.