`
newleague
  • 浏览: 1510328 次
  • 性别: 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服务...

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

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

    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;`...

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

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

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

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

    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 的部署...

    Java 调用wsdl例子

    Java 调用 WSDL 例子是指使用 Java 语言来调用远程的 Web 服务,该 Web 服务是通过 WSDL 文件发布的。在 WSDL 文件中,包含了该 Web 服务暴露在外面的接口信息。 WSDL 文件是 Web 服务描述语言的缩写,用于描述 Web...

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

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

    基础平台使用手册-Web Service

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

    wsdl2java_jar.zip

    【标题】"wsdl2java_jar.zip" 是一个压缩包,其中包含了用于将WSDL(Web服务描述语言)文件转换为Java代码的必要库。这个过程通常在开发基于Java的Web服务客户端时进行,以便能够调用远程Web服务。 【描述】提到,...

    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地址),服务的...

    把wsdl文件转换成java类 使用wsdl2Java工具

    为了在Java环境中与这些Web服务交互,我们需要将WSDL文件转换为Java类,这就是`wsdl2java`工具的作用。 `wsdl2java`是Apache Axis项目的一部分,它是一个强大的工具,可以自动生成Java客户端和服务端代码,这些代码...

    wsdl2java工具

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

Global site tag (gtag.js) - Google Analytics