Как вызвать веб-сервис Java в ASP.net с помощью C# - Создание веб-сервиса Java
ОГЛАВЛЕНИЕ
Создание веб-сервиса Java
Netbeans 6 предоставляет очень простой и удобный способ разработки веб-сервиса. Разработка веб-сервиса с ее помощью проводится в несколько шагов. Эти шаги изложены ниже:
1. Создать проект веб-приложения.
2. Добавить веб-сервис в проект.
3. Добавить операции в веб-сервис.
4. Реализация веб-методов.
5. Развернуть и протестировать веб-сервис.
Шаг 1. Создать проект веб-приложения
i. Запустить Netbeans IDE; перейти в “Новый проект”, находящийся в меню ”Файл”. Откроется мастер нового проекта.
ii. Выбрать веб из вариантов категорий и веб-приложение из раздела проекта и затем нажать на кнопку ”Далее”.
Рисунок 1: Создать новый проект - шаг 1
iii. На следующем экране указать имя проекта, выбрать местоположение проекта. Также можно указать имя сервера для развертывания веб-приложения и изменить стандартный контекстный путь.
Здесь указывается имя проекта JSimpCalcWebService и оставляется контекстный путь, совпадающий с именем проекта.
Используется сервер приложений GlassFish V2 для развертывания.
Рисунок 2: Создать новый проект - шаг 2
iv. Нажать кнопку ”Завершить”.
Шаг 2. Добавить веб-сервис в ”Проект”
i. Щелкнуть правой кнопкой мыши по имени проекта в окне проводника ”Проекты”.
Рисунок 3: Пункт меню ”веб-сервис”
ii. Из пунктов контекстного меню выбрать меню ”веб-сервис”. Откроется диалоговое окно веб-сервиса.
Рисунок 4: Добавить новый веб-сервис
iii. Указать имя веб-сервиса и имя пакета, как показано на рисунке ниже, и затем нажать кнопку ”Завершить”.
В приведенном примере имя веб-сервиса – JsimpCalcWebService, а имя пакета - calc.ws.
Шаг 3. Добавить операции в веб-сервис
После добавления веб-сервиса в приложение пора добавить операцию веб-сервиса или WebMethod. Это можно сделать двумя путями. Первый – посредством режима разработки, а второй - посредством режима исходного кода. В приведенном примере используется режим разработки для создания заготовки WebMethod простейшим способом.
Рисунок 5: Добавить операцию в веб-сервис
i. Как показывает выделенный участок на рисунке 5, можно добавлять операции веб-сервиса путем нажатия кнопки ”Добавить операцию”. Оно открывает диалоговое окно ”Добавить операцию”. Смотрите рисунок 6.
Рисунок 6: Добавить параметры к веб-операции
ii. В диалоговом окне ”Добавить операцию” надо указать имя (на самом деле являющееся именем WebMethod).
iii. Также можно ввести имена параметров и их типы (эти параметры называются WebParam).
На рисунке 6 в качестве имени WebMethod указывается addition(сложение), чей тип возвращаемой переменной - java.lang.String, и он принимает два параметра (parameter1. и parameter2) типа double(вещественное число двойной точности). Аналогично создаются остальные операции –subtraction(вычитание), multiplication(умножение), division(деление), power(возведение в степень), maximum(максимум), minimum(минимум).
Шаг 4: Реализация веб-методов
После завершения шага 3 каркас веб-сервиса готов. Переключаемся из режима разработки в режим исходного кода, как показано на рисунке 7, чтобы сделать остальную часть реализации.
Рисунок 7: Написать код для веб-сервиса
Код должен выглядеть так:
package calc.ws;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import calc.util.NumberFormater;
/**
*/
@WebService()
public class JSimpCalcWebService {
/**
* Операция веб-сервиса
*/
@WebMethod(operationName = "addition")
public String addition(@WebParam(name = "parameter1")
double parameter1, @WebParam(name = "parameter2")
double parameter2) {
//Написать ваш код реализации здесь:
return NumberFormater.format((parameter1 + parameter2),0,6);
}
/**
* Операция веб-сервиса
*/
@WebMethod(operationName = "subtraction")
public String subtraction(@WebParam(name = "parameter1")
double parameter1, @WebParam(name = "parameter2")
double parameter2) {
// Написать ваш код реализации здесь:
return NumberFormater.format((parameter1 - parameter2),0,6);
}
/**
* Операция веб-сервиса
*/
@WebMethod(operationName = "multiplication")
public String multiplication(@WebParam(name = "parameter1")
double parameter1, @WebParam(name = "parameter2")
double parameter2) {
//Написать ваш код реализации здесь:
return NumberFormater.format((parameter1 * parameter2),0,6);
}
/**
* Операция веб-сервиса
*/
@WebMethod(operationName = "division")
public String division(@WebParam(name = "parameter1")
double parameter1, @WebParam(name = "parameter2")
double parameter2) {
//Написать ваш код реализации здесь:
return NumberFormater.format((parameter1 / parameter2),0,6);
}
/**
* Операция веб-сервиса
*/
@WebMethod(operationName = "power")
public String power(@WebParam(name = "parameter1")
double parameter1, @WebParam(name = "parameter2")
double parameter2) {
//Написать ваш код реализации здесь:
return NumberFormater.format(Math.pow(parameter1, parameter2),0,6);
}
/**
* Операция веб-сервиса
*/
@WebMethod(operationName = "maximum")
public String maximum(@WebParam(name = "parameter1")
double parameter1, @WebParam(name = "parameter2")
double parameter2) {
//Написать ваш код реализации здесь:
return NumberFormater.format(Math.max(parameter1, parameter2),0,6);
}
/**
* Операция веб-сервиса
*/
@WebMethod(operationName = "minimum")
public String minimum(@WebParam(name = "parameter1")
double parameter1, @WebParam(name = "parameter2")
double parameter2) {
//Написать ваш код реализации здесь:
return NumberFormater.format(Math.min(parameter1, parameter2),0,6);
}
}
Исходник 1: Исходный код веб-сервиса Java JSimpCalcWebService.java
Здесь используется метод NumberFormater.format(double number, int minFractionDigits,
int maxFractionDigits) для форматирования значения double в java.lang.String до шестого десятичного знака. Смотрите исходник 2.
package calc.util;
import java.text.NumberFormat;
/**
*
*/
public class NumberFormater {
public static String format(double number, int minFractionDigits,
int maxFractionDigits) {
NumberFormat format = NumberFormat.getInstance();
format.setMaximumFractionDigits(maxFractionDigits);
format.setMinimumFractionDigits(minFractionDigits);
return format.format(number);
}
}
Исходник 2: Исходный код NumberFormater.java
Шаг 5. Развернуть и протестировать веб-сервис
Теперь веб-сервис готов к развертыванию и тестированию. В Netbeans 6 это делается в несколько шагов. Сначала убедитесь, что сервер GlassFish работает. Чтобы запустить сервер, надо выполнить следующие шаги.
i. Перейти в окно проводника ”Сервисы”.
ii. Развернуть узел ”Серверы”.
iii. Щелкнуть правой кнопкой мыши по имени сервера (в данном случае GlassFish V2). Появится контекстное меню.
iv. Выбрать ”Запустить” из пунктов меню.
Рисунок 8: Запустить сервер приложений GlassFish V2
Теперь, когда сервер работает, пора развернуть приложение и протестировать созданный веб-сервис. Netbeans сама выполняет развертывания с помощью нескольких щелчков мышью, перечисленных ниже:
i. Перейти в окно проводника ”Проекты”.
ii. Развернуть узел ”веб-сервисы”.
iii. Щелкнуть правой кнопкой мыши по имени веб-сервисов (в данном случае JSimpCalcWebService). Появится контекстное меню.
iv. Нажать на меню ”Тестировать веб-сервис”.
Рисунок 9: Тестировать веб-сервис
Вышеизложенные шаги развертывают приложение и запускают стандартный браузер, в котором веб-сервис тестируется с помощью запроса и ответа SOAP(простой протокол доступа к объектам). Пример вывода показан на рисунке 10. Также можно просмотреть файл WSDL (язык описания веб-сервисов) путем щелчка по ссылке.
Рисунок 10: Тестировать веб-сервис
Кроме того, можно протестировать веб-сервис и просмотреть его файл WSDL с помощью консоли администрирования сервера приложений GlassFish, как показано на рисунке 11.
Рисунок 11: Тестировать веб-сервис через консоль администрирования
Нажав на ссылку ”Просмотреть WSDL”, можно просмотреть файл XML, описывающий веб-сервис. Файл WSDL должен выглядеть как на рисунке 12.
Рисунок 12: Файл WSDL
URL(унифицированный указатель ресурса), показанный в адресной строке, потребует вызова веб-сервиса. Далее показано его использование при создании веб-приложения с помощью ASP.net.