`

感受野马(Mustang)性情,体会Java SE 6.0的新特性之二--Web服务

    博客分类:
  • Java
阅读更多

在前一篇文章中,讲述了Java SE 6.0新特征的概观。本文将介绍Web服务。

Java Web 涉及到的JSR有 105,173,181,222,224,250。

由于Web服务日趋流行,利用Web服务的功能性的API特征正从最新的Java EE版本中向Java SE 6平台迁移。换言之,针对Web服务不需另外加入额外的工具,在Java EE和Java SE平台拥有相同的API。野马将大把不同的Web服务相关的API加到标准的工具柜中:以JSR 181针对Java 平台的Web服务元数据,通过JSR 224的基于XML 的Web服务Java API(JAX-WS);针对Java的带有附件的SOAP API(SAAJ)作为JSR 67

与三个Web服务API相关的包新增到Java SE 6.0里JAX-WS API 放置到javax.xml.ws包; SAAJ类在javax.xml.soap 包; Web服务的元数据类放置在javax.jws包里。

javax.jws

JSR 181 及其针对Java 平台Web服务元数据的规范提供一个在类中利用标注设计和开发Web服务的机制。标注从J2SE 5.0引入,在Java SE 6.0得到了进一步扩展。在第10章将会完整描述。但是,标注基本上允许将@tag加入到类,方法和特性来描述相关的元数据。一个解析器然后能定位标记并采取适当的行动;尽管行动什么时候发生完全依赖于标记自身。

JAX-WS 2.0 很容易使用. 本文将介绍如何使用Java SE 6。以JAX-WS如何建立一个简单的Web服务。首先建立一个建立一个将要作为Web服务发布的类,如表1所示:

<!---->

 

Java 代码 列表1
  1. package hello;   
  2.   
  3. public class CircleFunctions {   
  4.   
  5.    public double getArea(double radius) {   
  6.        return java.lang.Math.PI * (r * r);   
  7.     }   
  8.   
  9.    public double getCircumference(double radius) {   
  10.        return 2 * java.lang.Math.PI * r;   
  11.    }   
  12. }   
  13.   

 为了输出这些方法,必需做两件事情:引入javax.jws.WebService  包;在类的前面增加@WebService  标注以告诉Java编译器将发布此类为Web服务。下面的代码显示了这种变化(以黑体显示增加的代码)。

<!---->

Java 代码 列表2
  1. package hello;   
  2.   
  3. import javax.jws.WebService;   
  4.   
  5. @WebService  
  6.   
  7. public class CircleFunctions {   
  8.    public double getArea(double r) {   
  9.        return java.lang.Math.PI * (r * r);   
  10.     }   
  11.   
  12.    public double getCircumference(double r) {   
  13.         return 2 * java.lang.Math.PI * r;   
  14.     }   
  15.   
  16. }   
  17.   

在此,有两个基本的标注@WebService@WebMethod。@WebService标注指明HelloService 类作为Web服务。如果没有制定,标注的名称就是类的名称。也能制定命名空间,服务名,WSDL 位置和endpoint 接口等。在指定的上下文环境中,可以使用javax.xml.ws.Endpoint类的publish() 静态方法发布上面的类作为Web服务。代码见列表3:

Java 代码 列表3
  1. import javax.xml.ws.Endpoint;   
  2.   
  3. public static void main(String[] args) {   
  4.   
  5.       Endpoint.publish(   
  6.          "http://localhost:8080/WebServiceExample/circlefunctions",   
  7.          new CircleFunctions());   
  8.   
  9. }   
  10.   

现在,用javac编译源代码。但是源文件能做什么呢?通过对源文件运行 javac编译器进行编译只是产生了class文件。并没有产生特殊的东西。但是在编译类之后,也需要运行wsgen 命令行工具(wsgen 是Web service generator的缩写)。编译源代码后还必需完成更多的步骤:像下面一样调用wsgen工具。

> wsgen –cp . hello.CircleFunctions   

Wsgen工具将在一个叫做wsgen子目录下产生大量的源代码,然后将这些源代码编译成class文件。尽管从未编辑这些文件,但是可以浏览这些文件。注意在使用Wsgen工具时,原始的源代码必需在相应的包里。否则将产生错误。

就这么简单。当运行应用程序时,Java SE 6平台拥有一个小的Web应用服务器,它将在地址为http://localhost:8080/WebServiceExample/circlefunctions 发布Web服务。通过显示CircleFunction的WSDL 来验证Web服务。当JVM仍然运行时,在浏览器输入:

http://localhost:8080/WebServiceExample/circlefunctions?WSDL   

如果在浏览器里看见大量描述Web服务的功能的XML代码,那么Web服务就成功发布了。

 

分享到:
评论

相关推荐

    JDK6.0(Mustang)新特性

    ### JDK 6.0 (Mustang) 新特性详解:Instrumentation增强 #### 一、引言 随着Java技术的不断发展,其版本更新不断带来新的特性和优化,为开发者提供了更加强大的工具集。JDK 6.0(代号Mustang)作为Java平台的重要...

    java SE(入门知识2)-JDK环境变量设置.docx

    3. **JDK 1.6(6.0)"Mustang"**:这一版本进一步增强了性能,改进了内存管理和垃圾收集,并增加了许多新的API,如Swing的改进和动态代理。 ### JDK的安装与环境变量配置 安装JDK后,通常会在安装目录下看到两个子...

    HIGH-JAVA.zip_high

    Java SE 6.0是Java的一个重要版本,它提供了许多新特性,如改进的Swing组件,更强的性能,以及对XML处理的增强。源代码中可能包含了如何利用这些特性来构建用户界面,管理数据,以及优化程序运行的示例。 【标签】...

    Java发展史_&_Java9、10新特性

    ### Java发展史与Java 9、10新特性详解 #### Java发展史 Java自1995年由Sun Microsystems发布以来,历经多个版本的发展和完善,成为当今最受欢迎的编程语言之一。下面简要回顾Java的发展历程及其重要里程碑: - *...

    Java各版本特性一览-从Java1.0到Java12.docx

    3. **Java 6 (2006)**(Mustang):增加了JDBC 4.0 API,支持了PKI、GSS、Kerberos和LDAP,提升了网络和安全功能,同时引入了继承Web服务的能力。 4. **Java 7 (2011)**:Java 7引入了switch语句支持字符串、类型...

    javase6新特性

    Java SE 6,代号 Mustang,是Java发展过程中的一个重要版本,它在性能上有所提升,并引入了一系列新特性,尤其是在API库方面。其中,Instrumentation是Java SE 6的一个亮点,它允许开发者创建独立于应用程序的代理...

    mustang-98234-ghal8yh2k3.jpeg_java_work_document_

    标题中的“mustang-98234-ghal8yh2k3.jpeg_java_work_document_”似乎是一个组合,可能代表一个项目或任务的唯一标识符,后跟编程语言(Java)和工作文档的提及。这暗示了这个压缩包可能包含与Java编程相关的开发...

    java编程基础教程pdf

    2006年12月,SUN公司发布JRE6.0,代号为Mustang(野马);2009年12月,SUN公司发布Java EE 6;2010年11月,由于Oracle公司对于Java社区的不友善,因此Apache扬言将退出JCP。 Java的发展继续,2011年7月28日,Oracle...

    北京圣思源JAVA课程笔记(全)

    jdk 1.6(6.0):Mustang,野马 1. 下载JDK 2. 安装JDK 3. 设定环境变量(可以是用户变量,也可以是系统变量),指向JDK 安装目录中 的bin 目录 4. 通过运行,输入cmd 打开命令行窗口,输入java –version,...

    Apress Java 6 Platform Revealed.pdf

    本书主要介绍了Java SE 6 (代号为Mustang)的新特性和改进之处,旨在帮助读者快速了解并掌握这些新功能。以下是书中涵盖的一些关键知识点: #### 三、Java SE 6的关键特性 1. **Swing和AWT的改进**: - Swing组件库...

    Java各版本[定义].pdf

    Java SE 6(Mustang)发布于2006年12月11日,这一版本优化了性能、增强了脚本语言支持、改进了Web服务支持。 Java EE 6在2009年发布,代号为Galaxy,它主要提供了更好的组件模型、对RESTful Web服务的支持,以及...

    java基础知识技术

    Java EE针对企业级应用开发,增加了如Web服务、持久化支持等高级特性;Java ME则适用于移动设备和嵌入式系统。 ### 结论 掌握Java基础知识和技术对于从事软件开发的人员至关重要。从Java语言的基础语法到高级特性...

    清华大学版java课件

    例如,Java SE 5(Tiger)和Java SE 6(Mustang)是两个重要的版本,提供了丰富的特性和改进。 Java EE(J2EE)则专为服务器端应用程序设计,提供Web服务、组件模型、管理和通信API,支持企业级的面向服务架构(SOA...

    Mustang-App-Web:Web上托管的Mustang App

    Web上托管的Mustang App 此存储库上的分支和工作流 请检查此文档以了解团队将代码提交到GitHub的政策! 请注意,您不能直接提交给master或dev! 该项目应遵循以下工作流程: 主分支被认为是该项目的稳定分支。 只能...

    JDK/JRE 6.0.x Older Versions Release Notes Portfolio

    在深入探讨《JDK/JRE 6.0.x Older Versions Release Notes Portfolio》这一主题之前,我们首先需要理解几个核心概念:JDK(Java Development Kit),JRE(Java Runtime Environment),以及它们与Java 6.0版本的关系...

    JavaSE6.0的Derby嵌入式数据库

    随着JavaSE6.0(代号为Mustang)的发布,Sun公司将其集成到了Java平台之中,并命名为JavaDB。尽管有多种名称,但在实际应用中,它们通常指的是同一款产品——Derby。 Derby是一个轻量级的、完全由Java编写的数据库...

    java基础课程视频学习笔记分享.ppt

    - **2006年**:J2SE 6.0(即1.6.0),代号Mustang,进一步增强了Java平台的功能。 - **2011年**:Java SE 7.0,引入了更多的语言级改进。 - **2014年**:Java 8,增加了Lambda表达式等重要功能。 #### 三、Java的...

    Java的由来及发展历史,Java学习入门,了解Java的起源及发展历史

    Java EE 6在2009年发布,继续优化Web服务和企业级应用的功能。Oracle接手后,虽然面临社区关系的挑战,但Java仍然保持着强劲的发展势头,不断推出新的版本和特性,满足不断变化的软件开发需求。 Java的发展历程展示...

Global site tag (gtag.js) - Google Analytics