文档章节

利用wsgen工具产生WSDL文档

柳哥
 柳哥
发布于 2014/04/11 19:46
字数 435
阅读 828
收藏 1

wsgen工具还可以用来从一个web服务中生成对应的WSDL文档。如下面这个示例命令:

% wsgen -cp . -wsdl ch03.ts.HelloWordImpl

注意,ch03.ts.HelloWordImpl是SIB,也就是服务的实现类。我们再来看看生成的WSDL文档:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.4-b01. -->
<definitions targetNamespace="http://ts.ch03/" name="HelloWordImplService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:tns="http://ts.ch03/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <types>
    <xsd:schema>
      <xsd:import namespace="http://ts.ch03/" schemaLocation="HelloWordImplService_schema1.xsd"/>
    </xsd:schema>
  </types>
  <message name="sayHello">
    <part name="parameters" element="tns:sayHello"/>
  </message>
  <message name="sayHelloResponse">
    <part name="parameters" element="tns:sayHelloResponse"/>
  </message>
  <portType name="HelloWord">
    <operation name="sayHello">
      <input wsam:Action="http://ts.ch03/HelloWord/sayHelloRequest" message="tns:sayHello"/>
      <output wsam:Action="http://ts.ch03/HelloWord/sayHelloResponse" message="tns:sayHelloResponse"/>
    </operation>
  </portType>
  <binding name="HelloWordImplPortBinding" type="tns:HelloWord">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
    <operation name="sayHello">
      <soap:operation soapAction=""/>
      <input>
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
  </binding>
  <service name="HelloWordImplService">
    <port name="HelloWordImplPort" binding="tns:HelloWordImplPortBinding">
      <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
    </port>
  </service>
</definitions>

利用wsgen工具产生的WSDL文档和直接从web服务发布的运行时环境中获取的WSDL文档相比,有一个比较明显的区别:wsgen产生的WSDL文档中没有真正包括服务实际发布环境中的服务端点URL。下面是wsgen生成的WSDL文档的部分内容:

......
<service name="HelloWordImplService">
    <port name="HelloWordImplPort" binding="tns:HelloWordImplPortBinding">
      <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
    </port>
</service>
......

注意这里:<soap:address location="REPLACE_WITH_ACTUAL_URL"/>,使用时,只要用真实的服务端点URL替换红色文字部分即可。除了这点差别之外,通过这两种情况下获取的WSDL文档是相同的。

© 著作权归作者所有

柳哥
粉丝 207
博文 405
码字总数 347782
作品 0
杭州
技术主管
私信 提问
wsgen工具与JAX-B工件(Artifacts)

任何Document样式的服务,无论具有包装还是非包装,都需要由wsgen工具产生的工件(Artifacts,支持客户端开发的相关代码资源)。wsgen工具可以产生构建WSDL文档所需要的类,这些类就是通常所...

柳哥
2014/04/10
188
0
Java 字节码工具 ASM 在 web services 开发中的应用

在基于 JAX-WS 标准的 web services 的开发中,不少实际场景都是希望采用自底向上的开发方式, 即基于已有的 Java bean 来创建 web services 。WebSphere Application Server ( 以下简称 WA...

IBMdW
2011/09/26
2.1K
2
JAX-WS开发WebService初级

软件需求 J2EE 7 SDK Eclipse Tomcat Maven JAX-WS的构成 SEI,全称Service Endpoint Interface或Service Endpoint Implemention。是服务器端和客户端开发真正要接触的类。 JAX-WS RI,全称J...

xpbug
2014/04/21
5.8K
3
Web Service学习笔记

Web Service概述 Web Service的定义 W3C组织对其的定义如下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计。Web Service服务通常被定义为一组模块化的API,它们可以通过网络...

姚君
2014/04/17
141
0
在SOAP1.2下实现HelloWord服务

还是以前面的HelloWord服务为例子。 服务端: HelloWord.java package ch03.ts; import javax.jws.WebMethod;import javax.jws.WebParam;import javax.jws.WebService;import javax.xml.ws.H......

柳哥
2014/05/06
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

redis 内存信息解析

used_memory:由 Redis 分配器分配的内存总量,包含了redis进程内部的开销和数据占用的内存,以字节(byte)为单位 used_memory_rss:向操作系统申请的内存大小。与 top 、 ps等命令的输出一...

Canaan_
11分钟前
2
0
windows 下 python3 安装 pip setuptools

本文链接:https://blog.csdn.net/huzuxing/article/details/80807744 最近在家使用python的时候,总是报setuptools 模块未找到,于是在网上搜索了相关解决办法,但是都没有解决问题。 于是去...

开源中国首席CYO
18分钟前
2
0
数据库添加索引

mysql索引添加 navicat 步骤 - 选择表 -> 设计表 ->索引

以谁为师
28分钟前
3
0
java7与java9中的try-finally关闭资源

1.java7中的try 在java7之前,对于一些需要使用finally关闭资源的操作,会显得很臃肿. try{//}catch(Exception e){//}finally{if(xxxx != null){xxxx.close();}} 在jav...

Blueeeeeee
29分钟前
2
0
字节序转换详解

在跨平台和网络编程中我们经常会提到网络字节序和主机字节序,如果没有正确对两者进行转换,从而导致两方产生了不同的解释,就会出现意想不到的bug。 目录 0x01 概念 0x02 分类 0x03 两种字节...

无心的梦呓
39分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部