使用NetBeans IDE发布RESTful Web服务

日期: 2008-03-12 作者:William Brogden翻译:杨君 来源:TechTarget中国 英文

集成式开发环境主要由两种个开放源软件占主导地位软件所支配,即NetBeans 和Eclipse。今天我们主要看其中一个软件NetBeans是如何为RESTful Web服务 services提供支持的。   NetBeans是Sun公司购买的一家商业IDE公司所开发的软件,2000年作为开源软件发布。该软件由JAVA语言编写,具有非常广泛的用户群。

同Eclipse一样,NetBeans由许多加载模块组成,可以支持多种语言和设计技术。NetBeans为许Sun公司最钟爱的技术提供技术支持,包括Glassfish的开源Java EE5应用服务器。虽然服务器是Glassfish开发社团的核心,许多项……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

集成式开发环境主要由两种个开放源软件占主导地位软件所支配,即NetBeans 和Eclipse。今天我们主要看其中一个软件NetBeans是如何为RESTful Web服务 services提供支持的。

  NetBeans是Sun公司购买的一家商业IDE公司所开发的软件,2000年作为开源软件发布。该软件由JAVA语言编写,具有非常广泛的用户群。同Eclipse一样,NetBeans由许多加载模块组成,可以支持多种语言和设计技术。NetBeans为许Sun公司最钟爱的技术提供技术支持,包括Glassfish的开源Java EE5应用服务器。虽然服务器是Glassfish开发社团的核心,许多项目是独立存在的。有些项目肯定最前沿的Web服务技术。其中一项包括JAX-RS的实施,即针对RESTful Web服务的Java API或JSR 311,称为Jersey。令我高兴的是,我发现Jersey的实施取得显著进步,它已经增加为2007年12月发布的最新NetBeans 6.0版本的插件。

  安装NetBeans

  我下载并安装了NetBeans 6.0。尽管里面的插件尽量少,但还是一个十分巨大的数据包。插件管理器功能提供了一套很好的系统,以保持随时更新并获取所需插件。安装包括Glassfish服务器,并能检测系统中的其他服务器。尽管NetBeans可以和Java JDK 5一同工作,不过要是在安装NetBeans前将其升级到JDK 6,就更加理想了。

  添加RESTful Web服务支持

  插件管理员通过连接中央储存器完成NetBean升级并添加新的功能。我加载了一个叫做“RESTful Web服务”的插件,更新了其他几个模块。该插件是和Jersey 0.5.1相对应的测试版本。所以目前还处于开发阶段。

  我按照Jersey(援引下面的网络资源)的范例在NetBeans创建了一个新的RESTful Web服务项目。主要是填写URIs,中出现的名称、JAVA软件包名和类名。这项服务的目的是检测输入词,根据Metaphone语音编码算法,再返回一串语音相近的词。我规定通过URI路径进入该资源返回字串为“looup(查看)”。

  JAX-RS规范总是用“资源”这个词,强调对服务的REST思考方式,而不是截然不同的SOAP、 JAX-RPC对服务的思维方式,作为激活命名程序。IDE按照基于RESTful 模式创立的Java编码使用该惯例为“"LookupResource”(查找资源)类建骨架代码,如下所示。每一项请求都会产生一列新的LookupResource实例。

  "@Path"注释告诉Jersey运行时servlet将URL中的“lookup”映射到改服务类。“@HttpContext”注释使运行时servlet自动“注入”UriInfo对象引导。当一项LookupResource的实例生成时,该对象引导就具有所有的请求URI 信息。
@Path("lookup")
public class LookupResource {
    @HttpContext
private UriInfo context;

  在下面的java编码中,我留下了NetBeans创建骨架代码时的注解。"@GET" 和"@ProduceMime"注解说明该方法中的框架能满足HTTP GET的请求,返回一个格式串HTML。当然,该方法编写的内部细节取决于程序设计师。这个例子展示了第一步,证实了查询参数值可以从UriInfo目标中抽取。

   /**
     * Retrieves representation of an instance of com.wbrogden.phonetic.LookupResource
     * @return an instance of java.lang.String
     */
    @GET
    @ProduceMime("text/html")
    public String getHtml() {
        // the context contains all query information
        String word = context.getQueryParameters().getFirst("match") ;
        return "Match String " + word ;
    }

  “@ProduceMime”注释用来查找与请求中最匹配的资源提供者的类。使用NetBeans的“运行”命令,启动我的Tomcat服务器。TOMCAT启动信息显示,当架构servlet启动时,Tomcat搜索执行类。传送我的浏览器到下面的URI
http://localhost:8080/MetaPhone1/resources/lookup?match=word
产生了预料之中的文本“匹配字符串”,证实框架能够确定我的服务级别,创建一个实例。这叫做getHtml()法。当URI运用查询格式是,进一步的实验表明除了通过查询格式,我无法让系统认定运用REST 分层模式的URI。下面的URI将传送“一些词”文本到查看资源,但Tomcat报道出错。

  http://localhost:8080/MetaPhone1/resources/lookup/someword

  在下载的Jersey独立版本中,还有许多为分层模式提供支持的例子,所以看样子我还得弄清如何能让NetBeans插件做同样的工作。

  Netbeans为程序设计和调试提供极大的支持,例如,在编辑getHtml()方法代码,编辑器向我展示了所有“上下文”对象支持的方法。与Web相关联的程序设计显著特性就是能够记录完整的HTTP请求和回应文本。

相关推荐

  • SAP收购CallidusCloud 与Salesforce竞争

    一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]

  • 数字化转型:如何更好地利用API和微服务

    API,即应用程序编程接口,它提供给应用程序、开发人员访问其它应用的能力,而又无需访问源码,无需理解内部工作机制细节;简单地说,API就是实现应用与应用连接的一种隐形的桥梁。

  • 金融行业数字转型:利用API构建新IT基础

    从制造业、物流业,银行业到零售业,各行各业的根基都因应用经济的兴起发生着深刻的变革。在互联网和智能手机普及化的推动下,这种现象变得司空见惯。到2021年 ,蓬勃发展的全球应用经济的预估总值将达到6.3万亿美元,相比2016年的1.3万亿美元,增长近5倍。

  • 如何使用Azure API管理服务?

    在云和微服务架构时代,API是数字化业务的通用语言。根据分析公司Forrester Research预测,仅在美国,API管理工具的支出将在未来5年内达到近30亿美元。