Я начал пробовать JavaFX2.2, отправляя запросы к веб-службе RESTful. Чтобы создать свой веб-сервис, я следовал этому руководству по Netbeans: http://netbeans.org/kb/docs/websvc/rest.html (на основе моей базы данных).
Объекты, конфигурация и пакет услуг были успешно сгенерированы, и когда я тестирую службу, щелкнув правой кнопкой мыши мой проект и выбрав «Проверить веб-службу RESTful...», кажется, что все работает (получая ответ XML)
Теперь я пытаюсь создать приложение JavaFX2, которое выполняет запросы к этому веб-сервису. Для этого я использую клиент Джерси (также сгенерированный Netbeans 7.2) на основе моей службы DAPFacadeREST. Когда я нажимаю кнопку в своем приложении, выполняется следующее:
NewJerseyClient njc = new NewJerseyClient();
String s = njc.find_XML(String.class, "1");
System.out.println("Output from Server .... \n");
System.out.println(s);
Это дает мне следующий ответ от сервера:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<dap>
<adres>Street 1</adres>
<btw></btw>
<contactPersoon></contactPersoon>
<dapid>1</dapid>
<email>[email protected]</email>
<gemeente>RandomCity</gemeente>
<land>België</land>
<naam>Paul The Man</naam>
<postcode>9999</postcode>
<tel>+32999 88 77 66</tel>
</dap>
Эта информация верна, но теперь я застрял. Я хочу, чтобы это было преобразовано в объект JavaFX2, желательно примерно так:
public class DAP {
private SimpleIntegerProperty DAPID = new SimpleIntegerProperty();
private SimpleStringProperty naam = new SimpleStringProperty("");
private SimpleStringProperty contactPersoon = new SimpleStringProperty("");
private SimpleStringProperty adres = new SimpleStringProperty("");
private SimpleStringProperty postcode = new SimpleStringProperty("");
private SimpleStringProperty gemeente = new SimpleStringProperty("");
private SimpleStringProperty land = new SimpleStringProperty("");
private SimpleStringProperty telefoonnummer = new SimpleStringProperty("");
private SimpleStringProperty btw = new SimpleStringProperty("");
private SimpleStringProperty email = new SimpleStringProperty("");
//constructor, getters & setters below
Это вообще возможно? Я имею в виду, что с SOAP вы можете использовать прокси-классы, но там SimpleIntegerProperty не известны на стороне сервера (JavaEE 6). Вот почему я иду с REST. Будет ли это такой же проблемой, как с SOAP? Поскольку на стороне сервера (в веб-службе RESTful) сгенерированные сущности выглядят следующим образом:
public class DAP implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "DAPID")
private Integer dapid;
@Basic(optional = false)
@NotNull
@Lob
@Size(min = 1, max = 65535)
@Column(name = "Naam")
private String naam;
@Basic(optional = false)
@NotNull
@Lob
@Size(min = 1, max = 65535)
//etc
Поле «naam» — это просто обычная строка, где я хочу, чтобы она была SimpleStringProperty на стороне моего клиента.
Я уже кое-что прочитал о JAXB, но я не понимаю, что я должен создать на стороне клиента и что я должен создать на стороне сервера. Если я не ошибаюсь, я должен где-то сделать файл xsd? Но опять же, будет ли это поддерживать тип SimpleStringProperty?
Извините за длинные сообщения, но я надеюсь, что кто-то может мне помочь... Заранее спасибо.