© 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.
此发行说明文件包含有关 WebSphereR Integration Developer 测试客户机的局限性以及已知问题和变通方法的最新信息。
集成测试客户机需要 Java 类(这些类是方法特征符中的参数)具有零个参数构造函数及其每个字段的相应 get/set 方法。
集成测试客户机在任何应用程序事务作用域之外执行,因此它不参与事务。因此不支持仿真事务回滚。
如果 WebSphereR Process Server 6.0 尚未启动,则集成测试客户机将在调用测试之前启动它。
此时,可选择以调试模式或普通模式启动该服务器。如果选择了调试模式,则测试客户机可能在服务器完全初始化之前调用测试。后续调用将正常运行。
要解决此问题,请在测试最初失败时重新运行它,或者在调用测试之前启动服务器。
集成测试客户机仅允许使用同步调用样式调用组件。
对于大部分组件而言,这没什么问题,因为即使组件只支持异步调用样式,底层 SCA 体系结构也会将同步调用转换成异步调用。但是组件可以支持两种调用样式,并且可以根据调用样式的不同而具有不同的代码路径。
您可能需要测试两种代码路径。在这种情况下,您可以创建一个将执行异步调用的 JavaR 组件,并使用集成测试客户机调用该组件,或者使用另一客户机(如 JSP 页面)以异步方式调用该组件。
测试客户机不能用来调用使用 SOAP 编码数组指定数据的组件。
示例 XSD 片段:
..
<xsd:restriction base="soapenc:Array">
<xsd:attribute ref="soapenc:arrayType"
wsdl:arrayType="typens:ResultElement[]" />
</xsd:restriction>
..
要解决此问题,请创建一个 JavaR 组件来调用服务。然后,即可使用测试客户机来调用该 Java 组件。
在使用集成测试客户机测试调解模块之前,必须已连接所有调解流组件引用,并且所有导入都必须具有绑定。如果未完成这些事情,调用组件时将生成如下所示的异常:
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