`
zhuchengzzcc
  • 浏览: 442341 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

    博客分类:
  • RPC
阅读更多

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://localhost:8088/messagejws?wsdl    

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

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics