`
newleague
  • 浏览: 1492477 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

传智播客-web service(6)-即时发布与定制发布、wsdl文档与java对象

 
阅读更多

即时发布与定制发布

 

Axis开发WS应用有两种发布方案:即时发布与定制发布。

 1、即时发布:开发这类服务时,只用编写源码,不用编译。源码一般放在项目的根目录下,扩展名改为jws即可。访问时通过完整路径(包括jws扩展名)直接访问该文件。访问时容器会对该服务类源码进行实时编译,编译后的文件放在生成的/WEB-INF/jwsClass目录下。 需要注意的是,即时发布的服务类不能有包名。为什么呢?因为jws文件也可以放在/项目名/aaa/目录下,因此可以通过http://localhost:8080/ 项目名/aaa/xxx.jws访问该服务,而此时实时编译的class文件放在jwsClass/aaa下,如果jws服务类带有包名,那么实时编译时容器会混淆“目录”和“包”。

 

2、定制发布:java类允许有包名。第一次发布时需要借助客户端的WSDD(Web Service Deploy Description)文件,该文件可以放在客户端项目的任意目录下,然后用Adming Client命令将WSDD文件上传给服务器(如果是myeclispe这样的IDE,可以利用工具调用AdminClient类的main方法)第一次发布后便会在服务端的/WEB-INF目录下自动生成一个server-config.wsdd文件,以后即使客户端的wsdd文件被删除了也可以(不知道是不是个bug,毕竟只有第一次需要,还是作为服务端的初始化??)。 需要明白的是,即时WS项目部署到了tomcat这样的web容器上,也不意味着就对外发布了WS服务。此外,通过地址访问服务时,需要在公开的服务名称之前加services/,当然也可以在配置文件中更改,不过一般没这个必要。 类似一般web应用,WS应用也有“范围”的概念,不过只有session和application两种;WS应用中的Handler则类似web应用的filter机制。 默认情况下axis服务器只能接受本机的管理请求。如需远程访问的话,需要修改Server-config.wsdd文件: <parameter name="enableRemoteAdmin" value="true"></parameter>

 

wsdl文档与java对象

Axis用三种方式支持WSDL:url+?wsdl方式获得自动生成的wsdl文档;

wsdlL2java工具能够通过wsdl文档生成java客户端存根和服务器端骨架;

java2wsdl工具可以通过java构建wsdl文档。

重点说说后面两种: 1、wsdlL2java:根据wsdl文档生成java对象。(1)客户端:run config-->project-->main(org.apache.axis.wsdl.WSDL2Java)-->arguments(http://localhost:8888/webservice/services/CustomerService?wsdl)-->run!-->刷新project-->project根目录下自动生成了基于pojo类、url信息和map数据的三个包,包最下层是WSDL2Java自动生成的java对象源码。当然也可以用命令指定生成的源码安放的路径和包名:http://localhost:8888/webservice/services/CustomerService?wsdl -v -p cn.itcast.axis.client.wsdl2java.customer -o src。同时还会自动生成deploy.wsdd和undeploy.wsdd文件。 生成的源码中,stub对象是wsdl2java生成的静态代理;静态代理类其实就是对动态代理的封装,用的类是完全一样的(Service/Call等),但是不用写地址和操作名了,通过静态代理(因为地址和操作名已经封装在本地了),就可以像访问本地类一样访问远程方法。XXXSOAPBindingSkeleton、XXXSOAPBindingImple是用命令“--server-side --skeletonDeploy true”生成的服务器端的骨架类,这时,wsdd文档中发布的服务是XXXSOAPBindingSkeleton;不过一般情况下,在客户端调用时不需要服务端的骨架,所以“--skeletonDeploy true”参数可以不用,这时就不会生成AddressBookSOAPBindingSkeleton,而wsdd文档中部署的是AddressBookSOAPBindingImpl,可以在这个服务类里实现业务逻辑。

 (2)服务端:将客户端自动生成的包copy到服务端src目录下,因为XXXSOAPBindingStub、XXXServiceLocator和Service是服务于客户端的,在服务端可以删除这三个文件,deploy.wsdd和undeploy.wsdd也是客户端才用的,也都不需要。将客户端的服务发布到WS以后,XXXSOAPBindingImple也可以删除,因为XXXSOAPBindingImple服务已经上传到服务端了。 2、java2wsdl:通过java构建wsdl文档。通常情况下,双方合作,一般先写接口构建业务体系,然后就可以进行其他工作,因为接口已经包含了业务签名,而具体的业务逻辑实现可以后期再写;此时可以通过接口生成wsdl文档,再通过文档生成实现类和骨架存根(关于骨架存根,请参见前文《ejb3(2)》),再在Impl里写具体实现。一般应用过程如下:编写业务接口-->java2wsdl-->wsdl2java-->编写接口实现(业务逻辑)-->用wsdl2java生成的deploy.wsdd部署(对外发布)-->将编写完的wsdl2java生成的实现copy到服务端,删除不需要的部分。

分享到:
评论

相关推荐

    Java解析wsdl文档获取具体的方法与参数

    总结,Java解析WSDL文档获取具体的方法与参数涉及的主要知识点包括:XML解析(DOM)、JAX-WS框架、`javax.xml.ws.Service`类的使用,以及如何基于WSDL生成服务客户端代码。理解这些概念,将有助于开发和消费Web服务...

    Java6开发的web service,发布https的wsdl地址

    本篇文章将深入探讨使用Java6开发支持HTTPS的Web Service,以及如何发布其WSDL(Web Service Description Language)地址。 首先,让我们了解Web Service的基本概念。Web服务是一种基于网络的、平台无关的接口,它...

    使用CXF: Java 2 WSDL

    6. **WSDL的结构与元素**:理解WSDL文件的结构至关重要,其中包括`&lt;wsdl:types&gt;`定义数据类型,`&lt;wsdl:message&gt;`定义通信消息,`&lt;wsdl:portType&gt;`定义服务接口,`&lt;wsdl:binding&gt;`定义通信方式,以及`&lt;wsdl:service&gt;`...

    java解析wsdl文档获取方法与参数

    在Java开发中,有时我们需要与Web服务进行交互,这时候就需要用到WSDL(Web Services Description Language)文档。WSDL是一种XML格式,它定义了服务的位置、接口以及如何调用这些服务。本文将深入探讨如何使用Java...

    Java6 开发的Web Service, 发布https的wsdl地址,服务端打包程序

    本话题主要聚焦于如何使用Java6开发Web Service,并将其部署为支持HTTPS的WSDL(Web Service Description Language)地址,以及如何将整个服务打包成可执行的JAR程序。 首先,我们需要理解Java6中的JAX-WS(Java ...

    WSDL2Java--根据wsdl生成Java客户端工具

    在Web服务的世界中,`WSDL`(Web Service Description Language)是一种XML格式的规范,用于定义服务接口、操作、消息结构等,使得服务消费者能够理解如何与服务进行交互。而`WSDL2Java`工具正是基于这样的需求...

    Java2WSDL和WSDL2Java操作指南.doc

    Java2WSDL 和 WSDL2Java 是两种常用的 Web 服务开发工具,分别用于将 Java 类转换为 WSDL 文件和将 WSDL 文件转换为 Java 代码。在本文中,我们将详细介绍 Java2WSDL 和 WSDL2Java 的使用方法和参数设置。 Java2...

    Java调用以WSDL形式发布的web service.doc

    当Java应用需要与一个以WSDL发布的Web服务交互时,它通常会使用一种名为“SOAP”(简单对象访问协议)的协议来发送和接收消息。 1. 使用Apache Axis调用远程Web服务 Apache Axis是一个流行的Java库,它允许开发者...

    WSDL生成Web Service java客户端

    本教程将围绕“WSDL生成Web Service java客户端”这一主题,详细介绍如何利用WSDL文件创建Java客户端来调用Web服务。 首先,WSDL文件是一种XML格式的文档,它描述了一个Web服务的接口,包括服务提供的操作、消息...

    wsdl2java命令使用

    在Web服务开发中,WSDL(Web Service Description Language)是一种XML格式,用于定义服务接口、操作、消息结构等。它使得服务提供者和服务消费者可以进行互操作。Apache Axis是Java平台上的一个开源Web服务框架,...

    Java Web Service总结

    即时发布是指在开发环境中直接将 Web Service 部署到服务器上的过程。即时发布使得开发者可以快速地部署和测试 Web Service。 2.2.2 定制发布(WSDD) 定制发布是指根据具体的需求和环境来定制 Web Service 的部署...

    Web Service描述语言 WSDL 详解.pdf

    标题:"Web Service描述语言 WSDL 详解.pdf" 描述:"Web Service描述语言 WSDL 详解.pdf" 标签:"service web wsdl" 部分内容:Web Service描述语言(WSDL)向这种WebService的提供商和用户推出了方便的协调工作的...

    把wsdl文件或地址转化成java代码工具

    这样,开发者无需手动编写调用Web服务的Java代码,只需导入WSDL文件,MyEclipse就能自动生成相应的Java客户端 stub类,这些类提供了与Web服务交互的方法。 具体步骤如下: 1. 打开MyEclipse,创建一个新的Web项目...

    基础平台使用手册-Web Service

    本手册覆盖了Web Service的基本概念,包括SOAP(简单对象访问协议)、WSDL(Web服务描述语言)和UDDI(统一描述、发现和集成)等核心组件。同时,深入探讨了Axis2和CXF的特性、优缺点以及使用场景。 ### 3. 参考...

    Java调用以WSDL形式发布的web_service.doc

    在Java编程中,调用以WSDL(Web Service Description Language)形式发布的Web服务是一项常见的任务。WSDL是一种XML格式的规范,它定义了服务的位置、服务提供的操作以及如何调用这些操作。本篇将深入讲解如何使用...

    java的wsdl语言实现web service的服务创建和调用实例

    在本实例中,我们将探讨如何使用Java和WSDL来创建和调用Web Service。 一、创建Web Service 1. 定义WSDL文件:首先,你需要创建一个WSDL文件来描述你的服务。WSDL文件定义了服务的端点(也称为SOAP地址),服务的...

    wsdl2java工具

    - **跨语言交互**:虽然本文主要介绍的是Java环境下的应用,但WSDL是跨平台的,生成的Java代码可以与不同语言实现的Web服务进行交互。 总结,`wsdl2java`工具是Web服务开发中的得力助手,它简化了基于WSDL的Java...

    Web Service描述语言 WSDL 详解(转)

    WSDL经常与简单对象访问协议(SOAP)一起使用,SOAP是一种基于XML的协议,用于在Web服务中发送结构化和类型化的信息。WSDL描述了服务如何通过SOAP进行通信,包括SOAP消息的结构和使用哪种HTTP方法(如POST)。 **3....

    java解析wsdl示例-详细版

    Java解析WSDL(Web Service Description Language)文档是一个关键任务,特别是在开发基于Web服务的应用程序时。WSDL是一种XML格式,用于定义服务接口、操作、消息结构以及如何通过网络调用这些服务。本示例将深入...

Global site tag (gtag.js) - Google Analytics