我开始尝试 JavaFX2.2 向 RESTful Web 服务发出请求。为了创建我的网络服务,我遵循了这个 Netbeans 指南: http: //netbeans.org/kb/docs/websvc/rest.html(基于我的数据库)。
实体、配置和服务包已成功生成,当我通过右键单击我的项目并选择“测试 RESTful Web 服务...”来测试服务时,这一切似乎都可以正常工作(获得 XML 响应)
现在我尝试创建一个 JavaFX2 应用程序来向这个 web 服务发出请求。为此,我使用基于我的 DAPFacadeREST 服务的 Jersey 客户端(也由 Netbeans 7.2 生成)。当我在我的应用程序中点击一个按钮时,将执行以下操作:
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>blablabla@skynet.be</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 Web 服务中),生成的实体如下所示:
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 作为类型吗?
对不起,很长的帖子,但我希望有人能帮助我......在此先感谢。