读书人

wsgen与wsimport下令简单说明(转)

发布时间: 2012-09-14 23:00:49 作者: rapoo

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是否合法,可以完整发布。?
命令参数说明:

? -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目录下的文件如下:
wsgen与wsimport下令简单说明(转)
? 同时在刚才新建的 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的客户端实现。?
命令参数说明:

? -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: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

?

读书人网 >编程

热点推荐