Release-Informationen zum Test-Client

© Copyright International Business Machines Corporation 2005. Alle Rechte vorbehalten.

Release-Informationen

1.0 Beschreibung
2.0 Einschränkungen
   2.1 Integration Test-Client benötigt zur Verwendung des Argumentkonstruktors zero Java-Klassen
   2.2 Transaktionen und der Integration Test-Client
3.0 Bekannte Probleme und Strategien zur Behebung von Problemen
   3.1 Debugger wird beim ersten Aufruf über den Test-Client nicht immer initialisiert
   3.2 Asynchroner Aufruf wird nicht direkt unterstützt
   3.3 Mit SOAP codierte Arraytypen werden für den Aufruf nicht unterstützt
   3.4 Mediationsmodul muss vor dem Test vollständig sein

1.0 Beschreibung

Diese Datei mit Release-Informationen enthält die neuesten Informationen zu Einschränkungen und bekannten Problemen sowie Strategien zur Behebung von Problemen beim Test-Client von WebSphereR Integration Developer.

2.0 Einschränkungen

2.1 Integration Test-Client benötigt zur Verwendung des Argumentkonstruktors zero Java-Klassen

Der Integration Test-Client benötigt Java-Klassen (Argumente in Methodensignaturen), um den Argumentkonstruktor zero verwenden zu können. Außerdem werden für alle Felder die entsprechenden Get- und Set-Methoden benötigt.

2.2 Transaktionen und der Integration Test-Client

Der Integration Test-Client wird außerhalb des Geltungsbereichs aller Anwendungstransaktionen ausgeführt und ist deshalb an Transaktionen nicht beteiligt. Deshalb kann das Zurücksetzen von Transaktionen nicht emuliert werden.

3.0 Bekannte Probleme und Strategien zur Behebung von Problemen

3.1 Debugger wird beim ersten Aufruf über den Test Client nicht immer initialisiert

Der Integration Test-Client startet WebSphereR Process Server 6.0, bevor er den Test startet, wenn der Server noch nicht gestartet ist.

An dieser Stelle können Sie auswählen, ob Sie den Server im Debugmodus oder im regulären Modus starten möchten. Wenn Sie den Debugmodus auswählen, wird der Test vom Test-Client möglicherweise aufgerufen, bevor der Server vollständig initialisiert ist. Weitere Aufrufe laufen dann fehlerfrei.

Um dieses Problem zu umgehen, führen Sie den Test nochmals aus, wenn er beim ersten Mal fehlschlägt, oder Sie starten den Server, bevor Sie den Test aufrufen.

3.2 Asynchroner Aufruf wird nicht direkt unterstützt

Der Integration Test-Client erlaubt den Aufruf einer Komponente nur über einen synchronen Aufruf.

Das reicht für die meisten Komponenten völlig aus, auch wenn diese nur den asynchronen Aufruf unterstützen, weil die zugrundeliegende SCA-Architektur den synchronen in einen asynchronen Aufruf umwandelt. Es ist jedoch möglich, dass eine Komponente beide Aufrufarten unterstützt und abhängig von der Aufrufart verschiedene Codepfade hat.

Sie sollten beide Codepfade testen. In diesem Fall können Sie entweder eine JavaR-Komponente erstellen, die den asynchronen Aufruf durchführt und diese Komponente dann mit dem Integration Test Client aufrufen, oder aber Sie verwenden einen anderen Client, z.B. eine JSP-Seite um die Komponente asynchron aufzurufen.

3.3 Mit SOAP codierte Arraytypen werden für den Aufruf nicht unterstützt

Der Test-Client kann Komponenten, die Daten in mit SOAP codierten Arrays angeben, nicht aufrufen.

XSD-Beispielsnippet:

..
<xsd:restriction base="soapenc:Array">
                        <xsd:attribute ref="soapenc:arrayType"
                            wsdl:arrayType="typens:ResultElement[]" />
  </xsd:restriction>

..

Um das Problem zu umgehen, erstellen Sie eine JavaR -Komponente, um den Service aufzurufen. Der Test-Client kann dann zum Aufruf der Java-Komponente verwendet werden.

3.4 Mediationsmodul muss vor dem Test vollständig sein

Vor dem Test eines Mediationsmoduls durch den Integration Test Client müssen alle Verweise der Mediation-Flow-Komponente verdrahtet sein und alle Importe müssen über eine Bindung verfügen.   Wenn dies nicht der Fall ist, werden Ausnahmebedingungen wie die folgende beim Aufrufen der Komponente generiert:

Caused by: org.eclipse.emf.common.util.BasicEList$BasicIndexOutOfBoundsException: index=0, size=0
 at org.eclipse.emf.common.util.BasicEList.get(BasicEList.java(Compiled Code))
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.FlowActionFactoryImpl.getWire(FlowActionFactoryImpl.java:923)
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.FlowActionFactoryImpl.createRequestSCAFromSMO(FlowActionFactoryImpl.java:854)
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.SCAInvocationAction.invokeSync(SCAInvocationAction.java:343)
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.SyncInvocation.complete(SyncInvocation.java:122)
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.FlowActionFactoryImpl.complete(FlowActionFactoryImpl.java:706)
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.FlowActionFactoryImpl.create(FlowActionFactoryImpl.java:393)
 at com.ibm.ws.sibx.scax.mediation.engine.SCACalloutElement.invoke(SCACalloutElement.java:134)
 at com.ibm.ws.sibx.scax.mediation.engine.MediationPrimitive.invokeConnections(MediationPrimitive.java:242)
 at com.ibm.ws.sibx.scax.mediation.engine.Input.invoke(Input.java:125)
 at com.ibm.ws.sibx.scax.mediation.engine.RequestFlow.invokeFlow(RequestFlow.java:123)
 at com.ibm.ws.sibx.scax.mediation.engine.MediationFlow.invokeRequestFlow(MediationFlow.java:112)
 at com.ibm.wsspi.sibx.mediation.flow.ejb.MediationFlowBean.invokeRequestFlow(MediationFlowBean.java:189)
 ... 53 more