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文件)
命令范例: wsgen -cp ./bin -r ./wsdl -s ./src -d ./bin -wsdl org.jsoso.jws.server.Example
PS:如果发布webservice的java类的方法中有异常声明时,是不能直接发布成webservice的,需要用wsgen命令生成相应的异常处理的类。
wsgen 命令 可以为我们生成wsdl 和异常处理的类
如: class目录结构如下:calsses\com\michael\MessageJws.class
在执行下面的命令之前需要新建文件夹classes\wsdl\,用来存放生成wsdl文件
如果创建文件夹classes\bin\、classes\src\:...\classes>执行下面的命令
wsgen -cp . -r ./wsdl -s ./src -d ./bin -wsdl com.michael.MessageJws
如果不创建上面的src、bin文件夹则可以: ...\classes>执行下面的命令:
wsgen -cp . -r ./wsdl -s ./ -d ./ -wsdl com.michael.MessageJws
这时在 calsses\com\michael\ 下看到生成了新的文件夹jaxws,jaxws目录下的文件如下:
同时在刚才新建的 classes\wsdl\ 下生成了两个wsdl相关文件:
MessageJwsService.wsdl 和 MessageJwsService_schema1.xsd
具体使用方式可以使用wsgen -help查看
Usage: wsgen [options] <SEI>
where [options] include:
-classpath <path> specify where to find input class files
-cp <path> same as -classpath <path>
-d <directory> specify where to place generated output files
-extension allow vendor extensions - functionality not specifi
ed
by the specification. Use of extensions may
result in applications that are not portable or
may not interoperate with other implementations
-help display help
-keep keep generated files
-r <directory> resource destination directory, specify where to
place resouce files such as WSDLs
-s <directory> specify where to place generated source files
-verbose output messages about what the compiler is doing
-version print version information
-wsdl[:protocol] generate a WSDL file. The protocol is optional.
Valid protocols are soap1.1 and Xsoap1.2, the defau
lt
is soap1.1. Xsoap1.2 is not standard and can only
be
used in conjunction with the -extension option
-servicename <name> specify the Service name to use in the generated WS
DL
Used in conjunction with the -wsdl option.
-portname <name> specify the Port name to use in the generated WSDL
Used in conjunction with the -wsdl option.
Examples:
wsgen -cp . example.Stock
wsgen -cp . example.Stock -wsdl -servicename {http://mynamespace}MyService
wsimport
wsimport也是在JDK的bin目录下的一个exe文件(Windows版),主要功能是根据服务端发布的wsdl文件生成客户端存根及框架,负责 与Web Service 服务器通信,并在将其封装成实例,客户端可以直接使用,就像使用本地实例一样。对Java而言,wsimport帮助程序员生存调用web service所需要的客户端类文件.java和.class。要提醒指出的是,wsimport可以用于非Java的服务器端,如:服务器端也许是C# 编写的web service,通过wsimport则生成Java的客户端实现。
命令参数说明:
- -d 生成客户端执行类的class文件的存放目录
- -s 生成客户端执行类的源文件的存放目录
- -p 定义生成类的包名
命令范例: wsimport -d ./bin -s ./src -p org.jsoso.jws.client.ref http://localhost:8080/hello?wsdl
下面2种方式都是正确的。
wsimport -d ./bin -s ./src -p com.michael.messageclient http:
wsimport -d ./bin -s ./src -p com.michael.messageclient ./wsdl/MessageJwsService.wsdl
具体使用方式可以使用wsimport -help查看
Usage: wsimport [options] <WSDL_URI>
where [options] include:
-b <path> specify external jaxws or jaxb binding files
(Each <file> must have its own -b)
-catalog <file> specify catalog file to resolve external entity refe
rences
supports TR9401, XCatalog, and OASIS XML Catalog for
mat.
-d <directory> specify where to place generated output files
-extension allow vendor extensions - functionality not specifie
d
by the specification. Use of extensions may
result in applications that are not portable or
may not interoperate with other implementations
-help display help
-httpproxy:<host>:<port> specify a HTTP proxy server (port defaults to 8080)
-keep keep generated files
-p <pkg> specifies the target package
-s <directory> specify where to place generated source files
-verbose output messages about what the compiler is doing
-version print version information
-wsdllocation <location> @WebService.wsdlLocation and @WebServiceClient.wsdlL
ocation value
Examples:
wsimport stock.wsdl -b stock.xml -b stock.xjb
wsimport -d generated http://example.org/stock?wsdl
分享到:
相关推荐
本文档旨在介绍如何使用`wsgen`和`wsimport`工具在Eclipse环境下搭建一个简单的WebService应用,包括服务端与客户端的开发过程。虽然这是一个入门级的示例程序——Hello World,但它能够帮助我们了解基于Java平台...
wsgen 命令用于生成 WSDL 文件,wsimport 命令用于编译 WSDL 文件以生成客户端程序所需的 stub 文件。 SOAP 协议和 WSDL 简介是 Web Service 的核心技术,它们提供了一种通用的机制来实现跨语言、跨平台的通讯和...
在%JDK_HOME%/bin下有两个命令wsgen和wsimport,就是用到APT和Compiler API来处理碰到的Annotations,wsgen可以为Web Services Provider产生并编译必要的帮助类和相关支持文件,wsimport以WSDL作为输入为Web Service ...
此外,JAX-WS还提供了几个常用的命令,比如wsgen和wsimport。wsgen是一个Java SE 6内置工具,用来生成Web服务类以及相关的部署描述符。wsimport是一个Java SE 6内置工具,用来生成客户端的存根和部署描述符,它们都...
maven-wsgen-plugin-5.2.4.jar
maven-wsgen-plugin-5.2.3.jar
maven-wsgen-plugin-5.2.2.jar
maven-wsgen-plugin-5.2.1.jar
maven-wsgen-plugin-5.2.0.jar
maven-wsgen-plugin-5.1.7.jar
maven-wsgen-plugin-5.3.0-m7.jar
maven-wsgen-plugin-5.3.0-m6.jar
maven-wsgen-plugin-5.3.0-m5.jar
maven-wsgen-plugin-5.3.0-m4.jar
maven-wsgen-plugin-5.3.0-m3.jar
maven-wsgen-plugin-5.3.0-m2.jar
maven-wsgen-plugin-5.3.0-m1.jar
maven-wsgen-plugin-5.2.4-sources.jar
maven-wsgen-plugin-5.2.3-sources.jar
maven-wsgen-plugin-5.2.2-sources.jar