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