- Статьи и примеры
- | Веб сервисы
- | Про то как сделать веб сервис на сервере приложений jboss 4.2
- | Про то как сделать веб сервис на сервере приложений jboss 4.2 страница 2
Про то как сделать веб сервис на сервере приложений JBoss 4.2 Страница 2
Завершающим штрихом будет антовский скрипт для развертывания приложения. Полтый текст можно найти в приложении. Вот его кусочек:
 <datasources>
  < target name="generate-test-jar" >  
   < echo message="Creating jar" / > 
   < !-- 1. create temp dir -- > 
    < mkdir dir="${classes.dir}/temp-jar" / > 
    < !-- 2. copy class files -- > 
    < copy todir="${classes.dir}/temp-jar" > 
     < fileset dir="${build.dir}" includes="**/**/*.*"  / > 
    < /copy >  
  < !-- 4. generate module -- > 
   < antcall target="generate-jar" > 
    < param name="jarfile" value="${classes.dir}/test-ejb.jar"/ > 
    < param name="jarbasedir" value="${classes.dir}/temp-jar"/ > 
    < param name="jarincludes" value="**/**/*.*"/ > 
   < /antcall > 
  < !-- 5. delete temp dir    -- > 
  < delete dir="${classes.dir}/temp-jar" / > 
 < /target > 
Запускаем Ant скрипт и получаем архив приложения test-ejb.jar. Этот файл надо переместить в папку deploy в сервере приложений JBoss 4.2. У меня это находиться здесь: C:\jboss\server\default\deploy.
Если сервер все еще не запущен — запустите его. Теперь загляните сюда: C:\jboss\server\default\tmp\jbossws там должен появиться файл с описанием нашего веб сервиса JBossService****.wsdl
Откройте броузер и наберите http://localhost:8080/JBossServiceService/JBossService?wsdl По этому адресу находится описание вновь созданного сервиса. И не сложно догадаться, что именно его будут использовать клиенты веб сервиса.
Для тестирования байтовых данных используется gif файл. Он находится в корне проекта. Ant скрипт копирует его в корень диска c.
Консольный клиент
Сейчас посмотрим, как можно подключиться и получить полезную информацию от нашего сервиса из консольного приложения.
Создаем новый Java проект: JBossServiceClient. Копируем библиотеки в папку lib:
- activation.jar
- javassist.jar
- jaxb-api.jar
- jaxb-impl.jar
- jbossall-client.jar
- jboss-ejb3x.jar
- jboss-jaxrpc.jar
- jboss-jaxws.jar
- jboss-saaj.jar
- jbossws-client.jar
- jboss-xml-binding.jar
- mail.jar
- servlet-api.jar
- stax-api.jar
- wsdl4j.jar
- xercesImpl.jar
Дальше нам необходимо на основе файла описания веб сервиса wsdl, сгенерировать client stub нашего консольного приложения. Для этой цели сервер JBoss 4.2 содержит программу wsconsume. Можно использовать и другие средства, например Axis но, как несложно догадаться, формат будет несколько non compatible.
Поэтому откроем командную строку, переместимся в папку C:\jboss\bin и наберем следующую команду:
Копируем из папки c:/output все java файлы и подключаем из к проекту в пакет service.ejb.
Создаем файл клиента JBossServiceClient. Он совсем простой.
 package service.client;
 import java.util.Date;
 import service.ejb.JBossService;
 import service.ejb.TestService;
 
 public class JBossServiceClient {
  
  public static void main(String[] args) {
   JBossService service = new JBossService();
   TestService testService = service.getJBossServicePort();
   System.out.println("JBossServiceClient(STIRING):" + testService.testString("Hello there!"));
   System.out.println("JBossServiceClient(BOOLEAN):" + testService.booleanTest(true));
   System.out.println("JBossServiceClient(INTEGER):" + testService.intTest(23, 44));
   System.out.println("JBossServiceClient(BYTE):" + testService.blobTest());
  }
  
 }
Запускаем и получаем ответ от веб сервиса.
JBossServiceClient(STIRING):JBossService result: Hello there! HOME_DIR: C:\jboss JBossServiceClient(BOOLEAN):false JBossServiceClient(INTEGER):67 JBossServiceClient(BYTE):[B@89e2f1
