wsdl2java -h 可以得到详细的参考文档:
G:\cxf\apache-cxf-3.1.6\bin>wsdl2java -h
wsdl2java -fe|-frontend <front-end-name> -db|-databinding <data-binding-name>
-wv <wsdl-version> -p <[wsdl-namespace =]package-name>* -sn <service-name>
-b <binding-file-name>* -reserveClass <class-name>* -catalog <catalog-file-name>
-d <output-directory> -compile -classdir <compile-classes-directory>
-impl -server -client -clientjar <jar-file-name> -all -autoNameResolution
-allowElementReferences|-aer<=true> -defaultValues<=class-name-for-DefaultValueProvider>
-ant -nexclude <schema-namespace [= java-package-name]>* -exsh <(true, false)> -noTypes -dns <Default value is true>
-dex <(true, false)> -validate<[=all|basic|none]> -keep
-wsdlLocation <wsdlLocation> -xjc<xjc-arguments>* -asyncMethods<[=method1,method2,...]>*
-bareMethods<[=method1,method2,...]>* -mimeMethods<[=method1,method2,...]>* -noAddressBinding
-faultSerialVersionUID <fault-serialVersionUID> -encoding <encoding> -exceptionSuper <exceptionSuper>
-seiSuper <seiSuper>* -mark-generated -h|-?|-help -version|-v -verbose|-V -quiet|-q|-Q -wsdlList <wsdlurl>
Options:
-fe|-frontend <front-end-name>
Specifies the front end. (defaults to JAXWS)
-db|-databinding <data-binding-name>
Specifies the data binding. (defaults to JAXB)
-wv <wsdl-version>
Specifies the WSDL version. (default is WSDL1.1)
-p <[wsdl-namespace =]package-name>*
Specifies the java package name to use for the generated
code. Optionally specify a WSDL namespace to Java package
name mapping.
-sn <service-name>
Specify he WSDL service name to use for the generated code.
Also, optionally specify the WSDL namespace.
-b <binding-file-name>*
Specify an external jaxws or jaxb binding files. Use one -b
flag for each binding file.
-reserveClass <class-name>*
Reserve a class name to keep the code generator from
generating a class of the given name. In name cases, a
binding file or use of -autoNameResolution flag may be
necessary for the code generator to completely generate
usable code.
-catalog <catalog-file-name>
Specify catalog file to map the imported wsdl/schema.
-d <output-directory>
Specify the directory into which the code is placed.
-compile Specifies that the generated code is compiled by the tool.
-classdir <compile-classes-directory>
Specifies the directory into which compiled class files are
placed.
-impl Specifies that a dummy service implementation is generated.
-server Specifies that server code is generated.
-client Specifies that client code is generated.
-clientjar <jar-file-name>
Package all the client classes and wsdl in a jar file
-all Specifies that interfaces, types , service, server , dummy
impl, client and ant script are generated.
-autoNameResolution
Specifies that the tool will attempt to resolve class
naming conflicts without requiring the use of binding
customizations.
-allowElementReferences|-aer<=true>
allowElementReferences
-defaultValues<=class-name-for-DefaultValueProvider>
Specifies that default values are generated for the dummy
implementation and client. You can specify the name of the
class to provide the default values. The default is
RandomValueProvider.
-ant Specifies that an ant build script is generated for the
project.
-nexclude <schema-namespace [= java-package-name]>*
Specifies a WSDL namespace to exclude when generating code.
This option can be specified multiple times. Optionally
specify the Java package name to use for the WSDL
namespace.
-exsh <(true, false)>
Enables the processing of extended SOAP header message
binding.
-noTypes Turns off generating types
-dns <Default value is true>
Enables loading the default namespace package name mapping.
The default is true.
-dex <(true, false)>
Enable loading the default excludes namespace mapping. The
default is true.
-validate<[=all|basic|none]>
Specifies that the WSDL is validated before generating the
code. Using this option is highly recommended. By default,
only very basic validation is done to make sure the WSDL
meets the WSI-BasicProfile standards that CXF requires.
-validate=none can turn off those checks while -validate or
-validate=all turns on additional schema validation and
other checks.
-keep Specifies that existing code will not be over written.
NOTE: You will have to solve any resulting compilation
problems by yourself
-wsdlLocation <wsdlLocation>
Specifies the value of the @WebServiceClient annotation's
wsdlLocation property.
-xjc<xjc-arguments>*
Specifies a comma separated list of arguments that are
passed directly to XJC when the JAXB data binding is used.
This option causes XJC to load additional plugins that
augment code generation. For example to load the
toString(ts) plugin that will add a toString() method to
all generated types the following <xjc arguments> would be
used: -xjc-Xts A list of available XJC plugins can be
obtained by using -xjc-X.
-asyncMethods<[=method1,method2,...]>*
Specifies a comma separated list of methods that should
have asynchronous version generated in addition to the
normal synchronous versions. If no methods are listed, all
methods are generated with asynchronous versions.
-bareMethods<[=method1,method2,...]>*
Specifies a comma separated list of methods that should not
be unwrapped into individual parameters and instead be left
in their "bare" form.
-mimeMethods<[=method1,method2,...]>*
Specifies a comma separated list of methods where the
mime:content information is used to generate the type.
-noAddressBinding Specifies that the generator should not use the address
jaxb binding file to map wsa:EndpointReferenceType or
wsa:EndpointReference to
javax.xml.ws.wsaddressing.W3CEndpointReference.
-faultSerialVersionUID <fault-serialVersionUID>
Specifies how to generate fault Exception's SUID, can use
NONE|TIMESTAMP|FQCN|####", the default is NONE. FQCN uses a
hash of the fully qualified class name. #### would be any
valid Long to use as the SUID.
-encoding <encoding>
Specifies the charset encoding to use when generating java
sources
-exceptionSuper <exceptionSuper>
Specifies the superclass to use for generated exceptions,
the default is java.lang.Exception.
-seiSuper <seiSuper>*
Specifies the SuperInterface to use for generated Service
Interfaces.
-mark-generated Adds @Generated annotation in all java files that are
generated.
-h|-?|-help Display detailed information for options.
-version|-v Display the version of the tool.
-verbose|-V Specifies that the generator runs in verbose mode.
-quiet|-q|-Q Specifies that the generator runs in quiet mode.
-wsdlList Indicates the wsdlurl is a plain text list of wsdlurls that
are new line delimited. As an example the wsdlurl might
point to
http://127.0.0.1:8080/context_path/ws?formatted=false&wsdlL
ist=true on a cxf server.
<wsdlurl> wsdl-url
说一下其中比较重要的几个:
-p 指定生产的代码的包路径,也就是生成的代码,我们将要放在哪个包下面;
-d 指定生产的代码的位置,也就是生成的代码放在哪个磁盘哪个目录下面;
演示:
G:\cxf\apache-cxf-3.1.6\bin>wsdl2java -p com.hemr.hl7.ws.client -d G:\new_ws\EMR\src\ -verbose http://localhost:8080/webservice/hL7MessageReveiver?wsdl
Loading FrontEnd jaxws ...
Loading DataBinding jaxb ...
wsdl2java -p com.hemr.hl7.ws.client -d G:\new_ws\EMR\src\ -verbose http://localhost:8080/webservice/hL7MessageReveiver?wsdl
wsdl2java - Apache CXF 3.1.6
上面的命令表示,将生成的代码放入到项目 G:\new_ws\EMR\src\ 源码目录,下的包路径:com.hemr.hl7.ws.client 下面去。
除了 -p 指定生成的代码包名(命名空间),-d 指定代码生成的位置,还有几个比较重要的选项:
1> -client 会帮我们生成调用服务的客户端代码:
wsdl2java -client -p com.hemr.hl7.ws.client -d D:\from_old\workspace\WebServiceTest\src\ -verbose http://localhost:8080/webservice/hL7MessageReveiver?wsdl
生成的代码稍微修改一下调用参数,就可以使用了。
2> -server -impl 会帮我们生成web service发布和服务端的实现代码(空实现):
wsdl2java -server -impl -p com.hemr.hl7.ws.server -d D:\from_old\workspace\WebServiceTest\src\ -verbose
3> -all 会帮我们生成:
-all Specifies that interfaces, types , service, server , dummy
impl, client and ant script are generated.
4> -encoding utf8 / -encoding gbk 解决生成的代码的乱码问题:
根据自己项目的编码情况,选则 gbk/utf8。乱码是指注释乱码。
5> 最后的地址,可以换成xml文件在磁盘的地址:
wsdl2java -client -p com.hemr.hl7.ws.client -d D:\from_old\workspace\WebServiceTest\src\ -verbose
G:\hL7MessageReveiver.xmll