- Статьи и примеры
- | Веб сервисы
- | Про то как сделать веб сервис на сервере приложений 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