我们有一个使用GWT进行通信的应用程序。我已启用DFE(In Loadrunner - Vugen)并选择GWT作为选项,并提供应用程序.WAR文件作为输入以提取所有与应用程序相关的.jar
文件。
记录了场景流,我看到所有请求都从GWT转换为XML格式。但是当我回复测试脚本时,我遇到了错误,因为DFE无法将HTTP响应从GWT转换为XML格式。
我们可以尝试解决此错误并转换为XML格式的其他选项有哪些?有没有办法可以抑制Loadrunner错误消息,以便它继续执行下一步而不是失败?
我们是否还需要额外的.jar
来转换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]
感谢。
答案 0 :(得分:0)
对于旧版本的gwt,它看起来像一个空(void返回类型)响应 - 状态是成功的(//OK
),没有设置标志(0
),版本很漂亮old(5
),并且字符串数组为空,因为没有其他数据要发回。听起来像我的GWT_DFE
类期望所有响应总是有一个值,或者他们处理响应的方式是非常错误的(或许他们不能很好地处理旧版本?我现在只是盲目地猜测,代码是不公开的。
如果您有像void sendMessage(SomeObject object)
这样的RemoteService方法,则除了onSuccess
响应本身之外,可能不需要任何返回类型。匹配的异步接口将具有AsyncCallback<Void>
,并且不会获得返回值。