Предпосылки
GlassFish интегрирован с Eclipse .
Создание веб-службы JAX-WS
1. В Eclipse создайте динамический веб-проект с именем com.eviac.blog.jaxwsproj. Сделайте GlassFish в качестве целевой среды выполнения.
2. Создайте новый класс под названием «SampleWS» в созданном проекте. Это будет класс реализации веб-сервиса.
SampleWS.java
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
|
package com.eviac.blog.jaxws.service; import javax.jws.WebMethod; import javax.jws.WebService; @WebService public class SampleWS { @WebMethod public int sum( int a, int b) { return a + b; } @WebMethod public int multiply( int a, int b) { return a * b; } } |
3. Откройте терминал и перейдите в корневой каталог проекта. Создайте каталог с именем wsdl внутри WebContent / WEB-INF /. Используйте следующую команду для создания артефактов веб-службы. Убедитесь, что ваш JAVA_ HOME установлен правильно, или эта команда не будет работать. Также убедитесь, что вы собрали проект перед запуском этой команды, иначе он пожалуется, что класс не найден
1
|
wsgen -classpath build/classes/ -wsdl -r WebContent/WEB-INF/wsdl -s src -d build/classes/ com.eviac.blog.jaxws.service.SampleWS |
4. Обновите проект, чтобы обнаружить созданные артефакты. Откройте созданный WSDL-файл в папке wsdl. Найдите REPLACE_WITH_ACTUAL_URL и замените его URL-адресом веб-службы: http: // localhost: 8080 / com.eviac.blog.jaxwsproj / SampleWSService и сохраните файл.
5. Разверните проект в Glassfish, щелкнув правой кнопкой мыши проект, выберите «Запуск от имени» -> «Выполнить на сервере» и выберите сервер Glassfish.
Создание клиента JAX-WS
1. Создайте Java-проект в eclipse под названием ‘com.eviac.blog.jaxwsclientproj’. Откройте новый терминал и перейдите в корень проекта. Используйте следующую команду, чтобы сгенерировать классы, необходимые для доступа к веб-службе. Здесь вам нужно будет использовать URL-адрес файла WSDL.
1
|
wsimport -s src -d bin http: //localhost:8080/com.eviac.blog.jaxwsproj/SampleWSService?wsdl |
2. Создайте новый класс с именем ‘SampleWSClient’ в проекте.
SampleWSClient.java
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
package com.eviac.blog.jaxws.client; import javax.xml.ws.WebServiceRef; import com.eviac.blog.jaxws.service.SampleWS; import com.eviac.blog.jaxws.service.SampleWSService; public class SampleWSClient { @WebServiceRef (wsdlLocation = 'http://localhost:8080/com.eviac.blog.jaxwsproj/SampleWSService?wsdl' ) private static SampleWSService Samplews; public static void main(String[] args) { SampleWSClient wsClient = new SampleWSClient(); wsClient.run(); } public void run() { Samplews = new SampleWSService(); SampleWS port = Samplews.getSampleWSPort(); System.out.println( 'multiplication Result= ' + port.multiply( 10 , 20 )); System.out.println( 'Addition Result= ' +port.sum( 10 , 20 )); } } |
3. Щелкните правой кнопкой мыши по проекту и выберите «Запуск от имени» -> «Приложение Java». Это приведет к следующему.
1
2
|
multiplication Result= 200 Addition Result= 30 |
Ссылка: Начало работы с JAX-WS от нашего партнера JCG Павитры Сиривардены в блоге EVIAC .