0

我们有一个使用 GWT 进行通信的应用程序。我已启用 DFE(在 Loadrunner - Vugen 中)并选择 GWT 作为选项,并提供应用程序 .WAR 文件作为提取所有应用程序相关.jar文件的输入。

记录了场景流程,我看到所有的请求都从 GWT 转换为 XML 格式。但是当我回复测试脚本时,我遇到了错误,因为 DFE 无法将 HTTP 响应从 GWT fromat 转换为 XML 格式。

我们可以尝试解决此错误并转换为 XML 格式的其他选项是什么?有没有一种方法可以抑制 Loadrunner 错误消息,以便它继续执行下一步而不是失败?

我们是否需要任何额外.jar的 s 来转换 HTTP 响应?

HTTP 响应(GWT 格式)://OK[[],0,5]

错误信息:

Action.c(93): Error -27040: Data Format Extension: Extension: GWT - ERROR 
[GWT_DFE] - Failed to parse response: 
java.lang.ArrayIndexOutOfBoundsException: -1
java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.elementData(ArrayList.java:403) ~[?:1.8.0-internal]
at java.util.ArrayList.get(ArrayList.java:416) ~[?:1.8.0-internal]


atcom.gdevelop.gwt.syncrpc.SyncClientSerializationStreamReader.readInt(SyncClientSerializationStreamReader.java:450) ~[SyncProxy.jar:?]
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:46) ~[gwt-servlet-2.0.4.jar:?]
at com.hp.dfe.GWT_DFE.deserializeResponseToXML(GWT_DFE.java:462) [classes/:?]
at com.hp.dfe.GWT_DFE.decode(GWT_DFE.java:704) [classes/:?]
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0-internal]
at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0-internal]
at com.hp.dfe.GWT_DFE_DYNAMICALLY_REFLECTED.doOperation(GWT_DFE_DYNAMICALLY_REFLECTED.java:70) [classes/:?]
at com.hp.dfe.GWT_DFE_DYNAMICALLY_REFLECTED.decode(GWT_DFE_DYNAMICALLY_REFLECTED.java:60) [classes/:?]
at com.hp.dfe.GWT_DFE_LAUNCHER.decode(GWT_DFE_LAUNCHER.java:456) [classes/:?]

[MsgId: MERR-27040]
Action.c(93): Error -27040: Data Format Extension: Extension: GWT - ERROR [GWT_DFE] - failed to read as a response
Øp–ñ´Ò
[MsgId: MERR-27040]

谢谢。

4

1 回答 1

0

对于旧版本的 gwt,这看起来像一个空(void 返回类型)响应 - 状态是成功(//OK),没有设置标志(0),版本很旧(5),字符串数组是空的,因为没有其他数据可以发回。相反,在我看来,您的GWT_DFE班级期望所有响应始终具有价值,或者在他们处理响应的方式上存在其他问题(也许他们无法很好地处理旧版本?我只是在盲目猜测此时,该代码尚未公开)。

如果你有一个 RemoteService 方法,除了响应本身void sendMessage(SomeObject object)之外,可能不需要任何返回类型。onSuccess匹配的异步接口将具有AsyncCallback<Void>,并且不会获得返回值。

于 2017-12-19T21:18:48.967 回答