测试客户机发行说明

© Copyright International Business Machines Corporation 2005. All rights reserved.US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

发行说明

1.0 描述
2.0 局限性
   2.1 集成测试客户机需要 Java(TM) 类具有零个参数构造函数
   2.2 事务和集成测试客户机
3.0 已知问题和变通方法
   3.1 第一次从测试客户机调用时调试器可能不会初始化
   3.2 不直接支持异步调用样式
   3.3 调用不支持 SOAP 编码的数组类型
   3.4 测试之前调解模块必须是完整的

1.0 描述

此发行说明文件包含有关 WebSphereR Integration Developer 测试客户机的局限性以及已知问题和变通方法的最新信息。

2.0 局限性

2.1 集成测试客户机需要 Java(TM) 类具有零个参数构造函数

集成测试客户机需要 Java 类(这些类是方法特征符中的参数)具有零个参数构造函数及其每个字段的相应 get/set 方法。

2.2 事务和集成测试客户机

集成测试客户机在任何应用程序事务作用域之外执行,因此它不参与事务。因此不支持仿真事务回滚。

3.0 已知问题和变通方法

3.1 第一次从测试客户机调用时调试器可能不会初始化

如果 WebSphereR Process Server 6.0 尚未启动,则集成测试客户机将在调用测试之前启动它。

此时,可选择以调试模式或普通模式启动该服务器。如果选择了调试模式,则测试客户机可能在服务器完全初始化之前调用测试。后续调用将正常运行。

要解决此问题,请在测试最初失败时重新运行它,或者在调用测试之前启动服务器。

3.2 不直接支持异步调用样式

集成测试客户机仅允许使用同步调用样式调用组件。

对于大部分组件而言,这没什么问题,因为即使组件只支持异步调用样式,底层 SCA 体系结构也会将同步调用转换成异步调用。但是组件可以支持两种调用样式,并且可以根据调用样式的不同而具有不同的代码路径。

您可能需要测试两种代码路径。在这种情况下,您可以创建一个将执行异步调用的 JavaR 组件,并使用集成测试客户机调用该组件,或者使用另一客户机(如 JSP 页面)以异步方式调用该组件。

3.3 调用不支持 SOAP 编码的数组类型

测试客户机不能用来调用使用 SOAP 编码数组指定数据的组件。

示例 XSD 片段:

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

..

要解决此问题,请创建一个 JavaR 组件来调用服务。然后,即可使用测试客户机来调用该 Java 组件。

3.4 测试之前调解模块必须是完整的

在使用集成测试客户机测试调解模块之前,必须已连接所有调解流组件引用,并且所有导入都必须具有绑定。如果未完成这些事情,调用组件时将生成如下所示的异常:

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