JavaFX 是 Sun微系统公司推出的一套基于 Java 技术的产品家族其目的是为从桌面机移动设备提供一致的用户体验它与最新版本的Java SE Runtime Environment (JRE) 和 Development Kit (JDK)绑定并且有可以直接调用Java API的能力
虽然JavaFX Script 运用类似Java 和JavaScript 的程序语言但是最重要的还是要懂得区分JavaFX与Java的不同之处在此特别之处的理解会对那些刚刚从事探究JavaFX 是RESTful 网络服务的invocation的Java开发者是有很大帮助的
这个十分钟的解决方案来演示如何从Java FX 调用RESTful 网络服务和如何得出结果
这是一个例子来展示如何命令一个提供航班离开和到达信息的RESTful网络服务到JavaFX的前端对于服务器URL这是删节的服务数据
< schedule>
< flight>
< number>< /number>
< time>::< /time>
< direction>Departure< /direction>
< carrier>USFlair< /carrier>
< destination>TYS< /destination>
< origin>ATL< /origin>
< /flight>
< /schedule>
问题怎样从一个JavaFX应用程序呼叫RESTful 网络服务并且如何得出结果?
解决方案
调用一个GET RESTful网路服务方法并且把它的结果分析到JavaFX目标当中
定义一种容器数据结构
开始在一个Flightfx文件中定义一个与航班元素结构相对应的的JavaFX分类
public class Flight{
public var number: String;
public var time: String;
public var direction: String;
public var carrier: String;
public var destination: String;
public var origin: String;
访问服务在一个主要的JavaFX应用程序(Mainfx)或在您的设计的地方从一个运用JavaFX object HttpRequest (参见Listing )的函数loadFlightsSchedules调用一个RESTful网络服务所有相关的特性和功能都在HttpRequest公布的范围之内被公布
说明的是网络服务的URL被指定为一个本地变量并且方法GET(虽然JavaFX支持PUT 和 POST)被指定为同样名字的变量你可以用requestenqueue()执行网络服务呼叫;如果成功了可以用方法onInput: function(input: javaioInputStream)来处理结果
分析结果
在功能onInput: function(input: javaioInputStream)中Listing 处理的XML结果是从被激活FlightsParser的网络服务得来的而FlightsParser它是一个JavaFX object javafxdatapullPullParser的自定义扩展名PullParsers支持直接询问和基本的XML分析(与SAX分析器一样)
加载从分析过的XML原理到航班目标你可以用目录种的缩写码
完成
这个快速分钟的解决方案演示了如何运用 GET 方法来调用一个RESTful 网络服务和如何用最小的错误处理把它的结果分析到JavaFX目标当中
有关网络服务处理和解析其他数据类型的细节参看JavaFX objects javafxiohttp javafxdatapull 和 javafxdataxml