bstr written har output ted 客户端源码 -i indicate
1. 下载 cxf
直接进入镜像下载
http://mirrors.tuna.tsinghua.edu.cn/apache/cxf/3.1.12/apache-cxf-3.1.12.zip
2. 配置 CXF 环境变量
CXF_HOME=E:/installFile/cxf/apache-cxf-3.1.12
在 CLASSPATH 后添加 %CXF_HOME%/lib;
在 Path 后添加 %CXF_HOME%/bin;
查看版本是否配置成功
wsdl2java -v
3. 生成服务端代码
打开 cmd 进入 wsdl 所在目录执行
- wsdl2java - server - impl - d E: \work\waikuai\pom\cxf\src\main\java HelloEsbService.wsdl
4. 配置服务端
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
- xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
- <import resource="classpath:META-INF/cxf/cxf.xml" />
- <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
- <jaxws:endpoint id="userService"
- implementor="com.midea.service.esbpro.abstraction.atomic.technology_helloesbservice.v1.HelloEsbServicePortImpl"
- address="/userWS">
- </jaxws:endpoint>
- </beans>
5.POM.XML
- <cxf.version>3.1.12</cxf.version>
- <dependency>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-frontend-jaxws</artifactId>
- <version>${cxf.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-transports-http</artifactId>
- <version>${cxf.version}</version>
- </dependency>
6.web.xml
- <!DOCTYPE web-app PUBLIC
- "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
- "http://java.sun.com/dtd/web-app_2_3.dtd" >
- <web-app>
- <display-name>Archetype Created Web Application</display-name>
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>
- classpath:applicationContext.xml
- </param-value>
- </context-param>
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <listener>
- <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
- </listener>
- <servlet>
- <servlet-name>CXFService</servlet-name>
- <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>CXFService</servlet-name>
- <url-pattern>/cxf/*</url-pattern>
- </servlet-mapping>
- </web-app>
7. 启动测试 访问
http://localhost:8015/cxf/cxf/userWS?wsdl
8. 客户端代码生成
cmd 进入客户端源码目录执行
- wsdl2java -keep http://localhost:8015/cxf/cxf/userWS?wsdl
或者执行
- wsdl2java - client - impl - d E: \work\waikuai\pom\cxf_client\src\main\java HelloEsbService.wsdl
9. 打开生成的模拟客户端 _cliet 调用接口 ok
这个 client 没有集成 spring
10. 客户端 spring 配置
- <bean id="client" class="com.midea.service.esbpro.abstraction.atomic.technology_helloesbservice.v1.HelloEsbService" factory-bean="clientFactory" factory-method="create"/>
- <bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
- <property name="serviceClass" value="com.midea.service.esbpro.abstraction.atomic.technology_helloesbservice.v1.HelloEsbService"/>
- <property name="address" value="http://localhost:8015/cxf/cxf/userWS?wsdl"/>
- </bean>
11. 查看 wsdl2java 帮助
wsdl2java -help
- 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
cxf http 代码自动生成
来源: http://www.bubuko.com/infodetail-2270623.html