LoadRunner GWT в XML Преобразование
У нас есть приложение, которое использует GWT для общения. Я включил DFE (в Loadrunner - Vugen) и выбрал GWT в качестве опции и предоставил файл.WAR приложения в качестве входных данных для извлечения всех приложений, связанных с .jar
файлы.
Записал сценарий потока, и я вижу, что все запросы преобразуются из GWT в формат XML. Но потом, когда я отвечаю на тестовый скрипт, у меня возникают ошибки, так как DFE не может преобразовать ответ HTTP из GWT fromat в формат 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]
Благодарю.
1 ответ
Это похоже на пустой (void return type) ответ для старой версии gwt - статус был успешным (//OK
), флаги не установлены (0
) версия довольно старая (5
), а массив строк пуст, поскольку других данных для отправки нет. Звучит вместо меня, как ваш GWT_DFE
класс ожидает, что все ответы всегда имеют значение, или что что-то еще очень неправильно в том, как они обрабатывают ответ (возможно, они не могут хорошо обработать старую версию? Я бы просто слепо догадался на данный момент, этот код не является общедоступным).
Если у вас есть метод RemoteService, как void sendMessage(SomeObject object)
, может не быть необходимости в любом типе возврата, кроме onSuccess
сам ответ. Соответствующий асинхронный интерфейс будет иметь AsyncCallback<Void>
и не получит возвращаемого значения.