0

We have an application which uses GWT for the communication. I have enabled DFE (In Loadrunner - Vugen) and selected GWT as the option and provided application .WAR file as the input to extract All Application related .jar files.

Recorded the scenario flow, and i see all the requests are converted from GWT to XML format. But then when i reply the test script i am having errors as DFE is not able to convert the HTTP response from GWT fromat to XML format.

What are the other options that we can try to resolve this error and convert to XML format? And is there a way that we can supress the Loadrunner error message, so that it will proceed with the next steps instead of failure?

Do we need any additional .jars for converting HTTP responses?

HTTP Response (In GWT Format): //OK[[],0,5]

Error Message:

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]

Thanks.

Tom Aranda
  • 5,919
  • 11
  • 35
  • 51
Ajay
  • 1
  • Can you confirm in the replay snapshot that the raw data received from the server is in the correct GWT format? – Buzzy Dec 19 '17 at 15:07
  • For me it looks like it's not in GWT format. And more over in the response headers i see it as JSON. Below are the response headers for reference. HTTP/1.1 200 OK\r\nServer: Apache-Coyote/1.1\r\nContent-Encoding: gzip\r\nContent-Disposition: attachment\r\nContent-Type: application/json;charset=utf-8\r\nContent-Length: 453\r\nDate: Tue, 19 Dec 2017 15:23:12 GMT. If the Response is not in GWT format, then how we can skip the Response Conversion from GWT to XML in Loadrunner (We need conversion for Requests but not for response)? – Ajay Dec 19 '17 at 16:12
  • I see you are already getting help on our official forum so I will not add a duplicate response here. – Buzzy Dec 21 '17 at 08:23

1 Answers1

0

That looks like an empty (void return type) response for an old version of gwt - the status was success (//OK), there are no flags set (0), the version is pretty old (5), and the array of strings is empty, since there is no other data to send back. Sounds instead to me like your GWT_DFE class is expecting that all responses always have a value, or that something else is very wrong in how they are handling the response (perhaps they can't handle the old version well? I'd be just blindly guessing at this point, that code isn't publicly available).

If you have a RemoteService method like void sendMessage(SomeObject object), there may be no need for any return type other than the onSuccess response itself. The matching async interface would then have AsyncCallback<Void>, and would not get a return value.

Colin Alworth
  • 17,801
  • 2
  • 26
  • 39