wsgen与wsimport命令简单说明(转)
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是否合法,可以完整发布。?
命令参数说明:
命令范例:?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 specified 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 default is soap1.1. Xsoap1.2 is not standard and can onlybe used in conjunction with the -extension option -servicename <name> specify the Service name to use in the generated WSDL 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的客户端实现。?
命令参数说明:
命令范例:?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: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 references supports TR9401, XCatalog, and OASIS XML Catalog format. -d <directory> specify where to place generated output files -extension allow vendor extensions - functionality not specified 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.wsdlLocation valueExamples: wsimport stock.wsdl -b stock.xml -b stock.xjb wsimport -d generated http://example.org/stock?wsdl
?