Сравнение скорости работы четырех клиентов веб сервисов Страница 2.

Клиент AXIS

В тесте использовалась версия 1.4. Скачать её можно тут. Кладем в папку lib1.4 следующие файлы:

  • lib1.4
    • axis.jar
    • axis-ant.jar
    • commons-discovery-0.2.jar
    • commons-logging-1.0.4.jar
    • jaxrpc.jar
    • log4j-1.2.8.jar
    • saaj.jar
    • wsdl4j-1.5.1.jar

Для чистоты эксперимента берем WSDL прямо с сервера, назовем файл Joker.wsdl, и пишем простой сценарий для запуска gen.bat:

 @echo off

 set CLASSPATH=./lib1.4/axis-ant.jar
 set CLASSPATH=%CLASSPATH%;./lib1.4/axis.jar
 set CLASSPATH=%CLASSPATH%;./lib1.4/commons-discovery-0.2.jar
 set CLASSPATH=%CLASSPATH%;./lib1.4/commons-logging-1.0.4.jar
 set CLASSPATH=%CLASSPATH%;./lib1.4/jaxrpc.jar
 set CLASSPATH=%CLASSPATH%;./lib1.4/log4j-1.2.8.jar
 set CLASSPATH=%CLASSPATH%;./lib1.4/saaj.jar
 set CLASSPATH=%CLASSPATH%;./lib1.4/wsdl4j-1.5.1.jar
 
 set PACKAGE=com.axis.client.wsdl
 echo CLASSPATH: %CLASSPATH%
 echo Generating Java files from WSDL, package: %PACKAGE%...

 java org.apache.axis.wsdl.WSDL2Java ./Joker.wsdl -p %PACKAGE% 

 pause

Готовые файлы добавляем в проект. Для тестирования создадим один на всех файл Client.java. В качестве тестовой строки для всех будет выступать строчка из новостей "Республика островов Фиджи, расположенная в южной части Тихого океана, против того, чтобы следующая версия Microsoft Windows называлась ее именем." с одного из новостных порталов. Создадим порт и напишем метод для запроса к сервису:

 com.axis.client.wsdl.Joker_PortType axisJoker = new com.axis.client.wsdl.Joker_ServiceLocator().getJokerPort();

 private String axisTest() throws RemoteException, UnsupportedEncodingException{
  com.axis.client.wsdl.MethodRequest axisReq = new com.axis.client.wsdl.MethodRequest();
  axisReq.setReqString(testString);
  com.axis.client.wsdl.MethodResponse  response = axisJoker.shift(axisReq);
  return java.net.URLDecoder.decode(response.getResString(),"UTF-8");
 }

Готово. На очереди...

Клиент JAX-WS (wsimport)

Тут все настолько просто, что и снова писать о том, как получить из WSDL объекты и интерфейс не станем. Напомним только что WSDL взяли из сервера. Тестовый метод похож на предыдущий:

 Joker wsImportJoker =  new Joker_Service().getJokerPort();

 private String wSImportTest() throws UnsupportedEncodingException{
  MethodRequest request = new MethodRequest();
  request.setReqString(testString);
  MethodResponse response = wsImportJoker.shift(request);
  return java.net.URLDecoder.decode(response.getResString(),"UTF-8");
 }

Следующий..

Страница: