`
oywl2008
  • 浏览: 1079950 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JAX-WS(一)之使用wsgen从Java创建WebService

 
阅读更多

概念

JAX-WS2.0的全称Java API for XML-Based Web Service 2.0.JAX-WS2.0是对JAX-RPC1.0规范的扩展,是JAX-RPC1.1的后续版本,JAX-RPC2.0标准发布不久后就被重命名为JAX-WS2.0.

JAX-WS2.0是Sun新的Web service协议栈,是一个完全基于标准实现的。在binding层,使用的是the Java Architecture for XML Binding(JAXB),在parsing层,使用的是the Streaming API for XML(StAX),同时它还完全支持schema规范。


术语

  • SEI:Service Endpoint Interface
  • JAX:Java API for XML Web Servcie
  • JAX-WS RI:JAX-WS Reference Implementation
  • SAAJ:SOAP with Attachments API for Java

创建 Web Service方式

JAX-WS 2.0有两种创建Web Service的开发过程:自顶向下和自定向上。自顶向下方式指通过一个WSDL文件来创建Web Service;自底向上是从Java类出发创建Web Service。两种开发过程最终形成的文件包括:

  1. SEI(对应WSDL中的一个Web Service port,在Java中表现为一个接口);
  2. SEI实现类;
  3. WSDL和XSD文件;

从Java开始的开发步骤:

  1. 声明某个类为@WebService,即将它声明为SEI实现类,然后对需要暴露的方法标注为@WebMethod;
  2. 运行wsgen命令生成其他所需文件;
  3. 发布Web Service;

SEI实现类

最简单的SEI实现类:

  1. package net.oseye;
  2.  
  3. import javax.jws.WebMethod;
  4. import javax.jws.WebService;
  5.  
  6. @WebService
  7. public class Hello {
  8. @WebMethod
  9. public String SayHello(String name){
  10. return String.format("Hello,%s",name);
  11. }
  12. }

此时的目录结构如下:

使用wsgen命令生成所需文件

  1. 进入JAX-WS-Java-Server项目目录如:
    1. D:\MyTemp\workspace\JAX-WS-Java-Server>
  2. 执行wsgen命令:
    1. wsgen -cp ./bin -r ./wsdl -s ./src -d ./bin -wsdl net.oseye.Hello
  3. 执行中可能出现“directory not found: wsdl”,手动建立wsdl目录。
  4. 成功后可在bin、src目录的命名空间net.oseye里看到生成的jaxws文件夹,以及在wsdl目录中的HelloService.wsdl和HelloService_schema1.xsd。

此时的目录结构如下:

 

发布Web Service

在应用程序中发布,JDK停工非常方便的API:Enndpoint.publish

  1. package net.oseye;
  2.  
  3. import javax.xml.ws.Endpoint;
  4.  
  5. public class Main {
  6.  
  7. /**
  8. * @param args
  9. */
  10. public static void main(String[] args) {
  11. Endpoint.publish("http://localhost:8808/HelloService", new Hello());
  12. }
  13.  
  14. }

运行应用程序,地址栏输入:http://localhost:8808/HelloService,接客预览:

wsgen工具简介

wsgen 是在JDK的bin目录下的一个exe文件(Windows版),该命 令的主要功能是用来生成合适的JAX-WS。它读取Web Service的终端类文件,同时生成所有用于发布Web Service所依赖的源代码文件和经过编译过的二进制类文件。这里要特别说明的是,通常在Web Service Bean中用到的异常类会另外生成一个描述Bean,如果Web Service Bean中的方法有申明抛出异常,这一步是必需的,否则服务器无法绑定该对像。此外,wsgen 还能辅助生成WSDL和相关的xsd文件。wsgen 从资源文件生成一个完整的操作列表并验证web service是否合法,可以完整发布。

命令参数说明:

  • -cp 定义classpath
  • -r 生成 bean的wsdl文件的存放目录
  • -s 生成发布Web Service的源代码文件的存放目录(如果方法有抛出异常,则会生成该异常的描述类源文件)
  • -d 生成发布Web Service的编译过的二进制类文件的存放目录(该异常的描述类的class文件)

 

 

 

 

http://www.oseye.net/blog/89

分享到:
评论

相关推荐

    JAX-WS自学笔记

    JAX-WS(Java API for XML-Based Web Services)是Java平台上的一个标准,用于构建和消费Web服务。它是JAX-RPC的继承者,提供了更现代、基于标准的编程模型。JAX-WS 2.0是其第二个主要版本,与Java 5兼容,并且基于...

    JAX-WS WebService简明教程

    本教程旨在帮助初学者快速掌握使用JAX-WS创建WebService的方法,从Java开始或从WSDL开始,再到最终发布和客户端调用,提供了全面的指南。通过这些知识点的学习,开发者可以更加熟练地使用JAX-WS构建高效可靠的Web...

    WebService之JAX-WS自学笔记

    ### WebService之JAX-WS自学笔记 #### JAX-WS概述 JAX-WS (Java API for XML-Based Web Services) 是 Java 平台上用于构建和访问 Web 服务的 API。JAX-WS 2.0 作为 JAX-RPC 1.0 规范的扩展,是其后续版本,并在 ...

    JAX-WS_开发_web_service

    JAX-WS(Java API for XML Web Services)是Java平台上的标准Web服务API,它为开发人员提供了一种简单的方法来创建和消费Web服务。JAX-WS支持消息导向以及RPC导向的Web服务,并且能够通过XML进行通信。JAX-WS允许...

    JAX-WS_web_service.txt

    JAX-WS(Java API for XML Web Services)是Java平台上的一个标准技术,用于实现基于XML的消息传递及远程过程调用(RPC)风格的Web服务。通过JAX-WS,开发者能够构建跨平台的Java客户端和服务端应用,并且支持World ...

    ws-exemplo:Glassfish Metro的JAX-WS示例

    JAX-WS是Java平台上的一个标准,用于构建和部署Web服务,它允许开发人员使用Java语言来创建、部署和消费SOAP(Simple Object Access Protocol)消息。 描述"ws-例子 Glassfish Metro的JAX-WS示例"进一步确认了这个...

    jaxws-ri.rar

    Java API for XML Web Services (JAX-WS) 是Java平台上的一个标准,用于构建和部署Web服务。它提供了与Web服务交互的能力,包括创建、调用、发布和管理Web服务。JAX-WS是Java EE(现在称为Jakarta EE)的一部分,...

    JDK6开发WebService及用户认证

    在JDK6中,主要使用JAX-WS(Java API for XML Web Services)框架来处理WebService的相关操作。 **二、JAX-WS入门** 1. **创建WebService**:首先,我们需要定义一个Java接口,该接口包含了要公开的服务方法,并...

    JAVA自带实现webservice.docx

    Java自带的JAX-WS(Java API for XML Web Services)框架提供了创建、部署和消费Web服务的能力。本文将详细介绍如何使用Java内置的工具来实现Web服务的开发、启动、部署和调用,并讨论如何设置权限。 **一、所需...

    Java与.net开发webservice详解大全

    - 服务端的创建过程同上,使用Java的JAX_WS实现。 - 客户端不再直接使用Web引用,而是通过.NET的SOAP客户端API(如System.ServiceModel)手动构建请求和解析响应。这通常涉及理解WSDL文件,创建适当的SOAP消息,...

    在tomcat下发布websphere详细步骤

    这两个类使用JAX-WS的注解如@WebService和@WebMethod来定义服务行为。 5. 使用Java编译器javac将接口和实现类编译成字节码文件,存放在classes目录下的对应包结构中。 6. 生成JAXB工件。执行wsgen工具,它会根据...

    WebService CXF demo

    它是一个强大的工具,允许开发者通过Java API来创建符合WS-I(Web Services Interoperability)规范的Web服务,确保跨平台、跨语言的互操作性。CXF是Apache软件基金会的一个项目,它的全称是“Client eXtended ...

    JAVA.WEB服务.构建与运行

     《Java Web 服务:构建与运行(影印版)》提供了对Java的API的一个全面介绍,包括针对XML Web服务的JAX-WS和针对RESTful Web服务的JAX-RS。《Java Web服务:构建与运行》通过提供混合架构概述、完整的工作代码示例...

    快速实现一个基于jws的webservice项目

    - 使用JAX-WS的工具,如`wsimport`或`wsgen`,从SEI生成服务端点的必要文件。 - 将这些文件部署到应用服务器,如Tomcat或Jetty。 4. **生成客户端代理**: - 对于消费者,`wsimport`可以自动生成一个客户端代理...

    CreateWebServiceWithJavaMetro.pdf

    Java Metro是Oracle提供的一套用于构建、部署和管理Web服务的工具集,它是GlassFish应用服务器的一部分,支持Java API for XML Web Services (JAX-WS)规范。 描述中没有提供具体细节,但我们可以假设它涵盖了如何...

    根据wsdl地址或文件生成webservice客户端

    Java中,可以使用Apache CXF、 Axis2 或者JAX-WS的wsimport工具来解析WSDL。 3. **生成客户端代码**:解析后的元数据可以用来自动生成客户端的代理类。这些类提供了与Web服务交互的方法,自动处理消息编码、网络...

    生成wsdl文件

    - 源码生成:如果你的Web服务基于Java的JAX-WS或.NET的WCF等框架,这些框架通常提供工具自动生成WSDL。例如,在Java中,使用`wsimport`或`wsgen`命令行工具,根据已有的Java类生成WSDL。 - 手动配置:对于复杂的...

    CXF简单示例

    同时,CXF还支持高级特性,如WS-Security、MTOM(消息传输优化机制)、数据绑定和JAX-RS(Java API for RESTful Web Services)等,这些都是构建复杂企业级Web服务的关键组件。随着对CXF的深入学习,你可以掌握更多...

Global site tag (gtag.js) - Google Analytics