Этот совет дня вдохновлен изучением JavaFX Script — часть 3 . В оригинальной статье объясняется, как вызывать веб-службу из клиента JavaFX с использованием NetBeans 5.5.1 и GlassFish v1. Более новая версия как NetBeans, так и GlassFish доступна с момента написания статьи. В этом совете дня объясняется, как вызывать конечную точку Metro, развернутую на GlassFish v2, из клиента JavaFX — все с использованием NetBeans 6 .
- После показа экрана # ws7 создайте обычную (без включенной безопасности или надежности) конечную точку Metro, используя NetBeans 6 и GlassFish v2.
- В среде IDE NetBeans 6 установите плагин JavaFX, как описано здесь .
- Создать клиентскую библиотеку веб-службы. Создание клиента веб-службы в приложении JavaFX Script вызывает исключение NullPointerException ( проблема # 126352 ). Обходной путь, который я использовал, — создать отдельную библиотеку с клиентскими артефактами, а затем включить ее в качестве зависимости в клиентский проект JavaFX.
- Создайте новый проект типа »
Java Class Library
«, как показано ниже:и нажмите »
Finish
«. - Введите название проекта как «
MetroClientLibrary
», как показано ниже:и нажмите «
Finish
». - Щелкните правой кнопкой мыши по вновь созданному проекту, выберите «
New
», «Web Service Client...
». - Нажмите кнопку «
Browse...
» рядом с переключателем «Project
» и выберите развернутый веб-сервис в проекте конечной точки Metro. Если веб-служба развернута на другом компьютере, вы можете указать URL-адрес WSDL. Укажите имя пакета «client
», как показано ниже:и нажмите «
Finish
». - Как только сгенерированы клиентские артефакты веб-службы (обозначенные расширяемым узлом дерева ссылок на веб-службы ), щелкните правой кнопкой мыши проект и выберите «
Build
». Это создает файл JAR, который будет использоваться позже. Расположение этого файла JAR отображается в консоли вывода. В нашем случае это такC:\workarea\samples\javafx\MetroClientLibrary\dist\MetroClientLibrary.jar
.
- Создайте новый проект типа »
- Создать проект JavaFX
- Создайте новый проект JavaFX, щелкнув правой кнопкой мыши в проводнике проектов, выбрав «
New Project
» и введя значения, как показано ниже: - Нажмите «
Next >
» и введите значения, как показано ниже:и нажмите «
Finish
». - Щелкните правой кнопкой мыши по вновь созданному проекту «
Properties
», «Libraries
», «Add JAR/Folder
» и выберите файл JAR, созданный вMetroClientLibrary
проекте « », как показано ниже:и нажмите «
OK
».Обратите внимание, Java SE 6 U4 используется для компиляции и запуска этого проекта. Если вы используете более раннюю версию Java SE 6, вам нужно переопределить JAX-WS 2.1 и JAXB 2.1 jar-файлы, используя одобренный механизм, как описано здесь . Классы в этих банках уже включены в Java SE 6 U4.
- В
metroclient.Main.fx
файле замените »// place your code here
» следующим кодом:import java.lang.*;
import javafx.ui.*;
import client.NewWebServiceService;
import client.NewWebService;
class InputModel {
attribute name: String?;
}
var inputModel = InputModel { };
var nameField = TextField { };
nameField.action = operation() {
inputModel.name = nameField.value;
};
class ButtonClickModel {
attribute result: String;
}
var model = new ButtonClickModel();
Frame {
title: "JavaFX Client -> Metro endpoint"
width: 350
height: 200
content: GridPanel {
rows: 3
vgap: 5
cells:
[SimpleLabel {
text: "Name : "
},
nameField,
SimpleLabel {
text: "Result from endpoint : "
},
Label {
text: bind "{model.result}"
},
Button {
text: "Invoke Web Service!"
action: operation() {
do {
try {
var service: NewWebServiceService = new NewWebServiceService();
var port: NewWebService = service.getNewWebServicePort();
var name: String = "{nameField.value}";
var result: String = port.sayHello(name);
System.out.println("response: {result}");
model.result = result;
} catch (e:Exception) {
System.out.println("exception: {e}");
}
}
}
}
]
}
visible: true
};
- Создайте новый проект JavaFX, щелкнув правой кнопкой мыши в проводнике проектов, выбрав «
- Вызвать клиентский проект JavaFX
- Щелкните правой кнопкой мыши недавно созданный проект (»
MetroClient
«) и выберите »Run Project
«. Появится следующее окно: - Введите »
Duke
» в текстовое поле и нажмите кнопку »Invoke Web Service!
«, чтобы увидеть результат, как показано ниже:
Выполнив следующие действия, вы создали клиент JavaFX, который может вызывать проект конечной точки Metro, развернутый на GlassFish — все с использованием среды IDE NetBeans.
Теперь Metro предоставляет безопасный, надежный, транзакционный и совместимый с .NET 3.0 Web-сервис. Вы пробовали / использовали какие-либо из этих функций в Metro?
Пожалуйста, оставьте предложения на других TOTD, которые вы хотели бы видеть. Полный архив доступен здесь .
Technorati: totdd JavaFX метро GlassFish NetBeans WebServices
- Щелкните правой кнопкой мыши недавно созданный проект (»