CXF学习之旅(三) - 使用Maven根据WSDL生成生成Java代码
2016-09-20 22:42
696 查看
转:
http://blog.csdn.net/yuguiyang1990/article/details/9800851
好久没有看CXF了,最近又一次用到,在这里根据日常使用,接着整理。
好吧,先复习一下,怎样使用Maven创建一个CXF的项目。
view plain
copy
print?
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.ygy.cxf</groupId>
<artifactId>cxf-date</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>cxf-date Maven Webapp</name>
<url>http://maven.apache.org</url>
<!-- 属性配置 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<cxf.version>2.7.5</cxf.version>
<spring.version>3.1.1.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<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>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>8.1.11.v20130520</version>
</dependency>
</dependencies>
<build>
<finalName>cxf-date</finalName>
</build>
</project>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
view plain
copy
print?
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<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>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
view plain
copy
print?
package org.ygy.cxf.entity;
import java.io.Serializable;
import java.util.Date;
public class BookEntity implements Serializable {
private static final long serialVersionUID = -860948461727285535L;
private Integer id;
private String name;
private String author;
private Date publicationDate;//出版日期
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public Date getPublicationDate() {
return publicationDate;
}
public void setPublicationDate(Date publicationDate) {
this.publicationDate = publicationDate;
}
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
[java]
view plain
copy
print?
package org.ygy.cxf.service;
import javax.jws.WebParam;
import javax.jws.WebService;
import org.ygy.cxf.entity.BookEntity;
@WebService
public interface IBookService {
/**
* 添加一本书
* @param book
*/
public void add(@WebParam(name="book")BookEntity book);
/**
* 根据ID,查询书籍
* @param id
* @return
*/
public BookEntity query(@WebParam(name="id")Integer id);
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
[java]
view plain
copy
print?
package org.ygy.cxf.service.impl;
import java.util.Date;
import javax.jws.WebService;
import org.ygy.cxf.entity.BookEntity;
import org.ygy.cxf.service.IBookService;
import org.ygy.cxf.util.DateUtil;
@WebService(endpointInterface="org.ygy.cxf.service.IBookService")
public class BookService implements IBookService {
@Override
public void add(BookEntity book) {
System.out.println("id->" + book.getId());
System.out.println("name->" + book.getName());
System.out.println("author->" + book.getAuthor());
System.out.println("publicationDate->" + DateUtil.toStr(book.getPublicationDate()));
}
@Override
public BookEntity query(Integer id) {
BookEntity book = new BookEntity();
book.setId(1001);
book.setName("OnePiece");
book.setAuthor("YGY");
book.setPublicationDate(new Date());
return book;
}
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
[java]
view plain
copy
print?
package org.ygy.cxf.util;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtil {
private static SimpleDateFormat sdf = null;
private DateUtil() {
}
/**
* 将日期转换成字符串
* @param date 日期
* @return
*/
public static String toStr(Date date) {
sdf = new SimpleDateFormat(Configs.COMMON);
return sdf.format(date);
}
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
[java]
view plain
copy
print?
package org.ygy.cxf.util;
public class Configs {
public static final String COMMON = "yyyy-MM-dd HH:mm:ss";
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
view plain
copy
print?
<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="bookService"
implementor="org.ygy.cxf.service.impl.BookService"
address="/BookService"
></jaxws:endpoint>
</beans>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201609/c253a5588ab6baa61d380db832951ecf)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201609/70136e174c78dd8ecb0fe08b16dec409)
7.到这里,都算是复习了,在以前,如果想要根据WSDL生成客户端代码的话,可能要使用命令行wsdl2java命令,还挺长的,
现在,使用了Maven,就简单多了。
修改pom.xml
[html]
view plain
copy
print?
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.ygy.cxf</groupId>
<artifactId>cxf-date</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>cxf-date Maven Webapp</name>
<url>http://maven.apache.org</url>
<!-- 属性配置 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<cxf.version>2.7.5</cxf.version>
<spring.version>3.1.1.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<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>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>8.1.11.v20130520</version>
</dependency>
</dependencies>
<build>
<finalName>cxf-date</finalName>
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>src/main/resources/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>http://localhost:8080/cxf-date/services/BookService?wsdl</wsdl>
<frontEnd>jaxws21</frontEnd>
<faultSerialVersionUID>1</faultSerialVersionUID>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
这里,添加了一个插件,通过它,可以根据配置的WSDL地址,将代码生成到指定的文件夹
sourceRoot:就是生成文件存放的位置
wsdl:就是WSDL地址
然后,在pom.xml上右键单击,选择run as 下的mvn generate-sources
![](https://oscdn.geek-share.com/Uploads/Images/Content/201609/194171f8fb2b298690eafb3572a7f034)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201609/2c9d9aa9a85045519421968493136fe8)
然后,刷新一下项目,就会看到生成的代码:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201609/3bea19dffc138246b61418533a9f18a1)
好了,先写到这,主要介绍一下使用Maven根据WSDL自动生成Java代码。
http://blog.csdn.net/yuguiyang1990/article/details/9800851
好久没有看CXF了,最近又一次用到,在这里根据日常使用,接着整理。
好吧,先复习一下,怎样使用Maven创建一个CXF的项目。
1.根据之前的博客,新建一个Web项目
2.修改pom.xml
[html]view plain
copy
print?
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.ygy.cxf</groupId>
<artifactId>cxf-date</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>cxf-date Maven Webapp</name>
<url>http://maven.apache.org</url>
<!-- 属性配置 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<cxf.version>2.7.5</cxf.version>
<spring.version>3.1.1.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<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>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>8.1.11.v20130520</version>
</dependency>
</dependencies>
<build>
<finalName>cxf-date</finalName>
</build>
</project>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.ygy.cxf</groupId> <artifactId>cxf-date</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>cxf-date Maven Webapp</name> <url>http://maven.apache.org</url> <!-- 属性配置 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <cxf.version>2.7.5</cxf.version> <spring.version>3.1.1.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> <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> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http-jetty</artifactId> <version>${cxf.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-webapp</artifactId> <version>8.1.11.v20130520</version> </dependency> </dependencies> <build> <finalName>cxf-date</finalName> </build> </project>
3.修改web.xml
[html]view plain
copy
print?
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<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>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <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> <servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> </web-app>
4.写服务接口
[java]view plain
copy
print?
package org.ygy.cxf.entity;
import java.io.Serializable;
import java.util.Date;
public class BookEntity implements Serializable {
private static final long serialVersionUID = -860948461727285535L;
private Integer id;
private String name;
private String author;
private Date publicationDate;//出版日期
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public Date getPublicationDate() {
return publicationDate;
}
public void setPublicationDate(Date publicationDate) {
this.publicationDate = publicationDate;
}
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
package org.ygy.cxf.entity; import java.io.Serializable; import java.util.Date; public class BookEntity implements Serializable { private static final long serialVersionUID = -860948461727285535L; private Integer id; private String name; private String author; private Date publicationDate;//出版日期 public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public Date getPublicationDate() { return publicationDate; } public void setPublicationDate(Date publicationDate) { this.publicationDate = publicationDate; } }
[java]
view plain
copy
print?
package org.ygy.cxf.service;
import javax.jws.WebParam;
import javax.jws.WebService;
import org.ygy.cxf.entity.BookEntity;
@WebService
public interface IBookService {
/**
* 添加一本书
* @param book
*/
public void add(@WebParam(name="book")BookEntity book);
/**
* 根据ID,查询书籍
* @param id
* @return
*/
public BookEntity query(@WebParam(name="id")Integer id);
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
package org.ygy.cxf.service; import javax.jws.WebParam; import javax.jws.WebService; import org.ygy.cxf.entity.BookEntity; @WebService public interface IBookService { /** * 添加一本书 * @param book */ public void add(@WebParam(name="book")BookEntity book); /** * 根据ID,查询书籍 * @param id * @return */ public BookEntity query(@WebParam(name="id")Integer id); }
[java]
view plain
copy
print?
package org.ygy.cxf.service.impl;
import java.util.Date;
import javax.jws.WebService;
import org.ygy.cxf.entity.BookEntity;
import org.ygy.cxf.service.IBookService;
import org.ygy.cxf.util.DateUtil;
@WebService(endpointInterface="org.ygy.cxf.service.IBookService")
public class BookService implements IBookService {
@Override
public void add(BookEntity book) {
System.out.println("id->" + book.getId());
System.out.println("name->" + book.getName());
System.out.println("author->" + book.getAuthor());
System.out.println("publicationDate->" + DateUtil.toStr(book.getPublicationDate()));
}
@Override
public BookEntity query(Integer id) {
BookEntity book = new BookEntity();
book.setId(1001);
book.setName("OnePiece");
book.setAuthor("YGY");
book.setPublicationDate(new Date());
return book;
}
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
package org.ygy.cxf.service.impl; import java.util.Date; import javax.jws.WebService; import org.ygy.cxf.entity.BookEntity; import org.ygy.cxf.service.IBookService; import org.ygy.cxf.util.DateUtil; @WebService(endpointInterface="org.ygy.cxf.service.IBookService") public class BookService implements IBookService { @Override public void add(BookEntity book) { System.out.println("id->" + book.getId()); System.out.println("name->" + book.getName()); System.out.println("author->" + book.getAuthor()); System.out.println("publicationDate->" + DateUtil.toStr(book.getPublicationDate())); } @Override public BookEntity query(Integer id) { BookEntity book = new BookEntity(); book.setId(1001); book.setName("OnePiece"); book.setAuthor("YGY"); book.setPublicationDate(new Date()); return book; } }
[java]
view plain
copy
print?
package org.ygy.cxf.util;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtil {
private static SimpleDateFormat sdf = null;
private DateUtil() {
}
/**
* 将日期转换成字符串
* @param date 日期
* @return
*/
public static String toStr(Date date) {
sdf = new SimpleDateFormat(Configs.COMMON);
return sdf.format(date);
}
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
package org.ygy.cxf.util; import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { private static SimpleDateFormat sdf = null; private DateUtil() { } /** * 将日期转换成字符串 * @param date 日期 * @return */ public static String toStr(Date date) { sdf = new SimpleDateFormat(Configs.COMMON); return sdf.format(date); } }
[java]
view plain
copy
print?
package org.ygy.cxf.util;
public class Configs {
public static final String COMMON = "yyyy-MM-dd HH:mm:ss";
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
package org.ygy.cxf.util; public class Configs { public static final String COMMON = "yyyy-MM-dd HH:mm:ss"; }
5.新建Spring配置文件
[html]view plain
copy
print?
<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="bookService"
implementor="org.ygy.cxf.service.impl.BookService"
address="/BookService"
></jaxws:endpoint>
</beans>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
<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="bookService" implementor="org.ygy.cxf.service.impl.BookService" address="/BookService" ></jaxws:endpoint> </beans>
6.好了,贴了这么多代码,发布项目测试一下先
7.到这里,都算是复习了,在以前,如果想要根据WSDL生成客户端代码的话,可能要使用命令行wsdl2java命令,还挺长的,
现在,使用了Maven,就简单多了。
修改pom.xml
[html]
view plain
copy
print?
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.ygy.cxf</groupId>
<artifactId>cxf-date</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>cxf-date Maven Webapp</name>
<url>http://maven.apache.org</url>
<!-- 属性配置 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<cxf.version>2.7.5</cxf.version>
<spring.version>3.1.1.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<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>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>8.1.11.v20130520</version>
</dependency>
</dependencies>
<build>
<finalName>cxf-date</finalName>
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>src/main/resources/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>http://localhost:8080/cxf-date/services/BookService?wsdl</wsdl>
<frontEnd>jaxws21</frontEnd>
<faultSerialVersionUID>1</faultSerialVersionUID>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.ygy.cxf</groupId> <artifactId>cxf-date</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>cxf-date Maven Webapp</name> <url>http://maven.apache.org</url> <!-- 属性配置 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <cxf.version>2.7.5</cxf.version> <spring.version>3.1.1.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> <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> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http-jetty</artifactId> <version>${cxf.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-webapp</artifactId> <version>8.1.11.v20130520</version> </dependency> </dependencies> <build> <finalName>cxf-date</finalName> <plugins> <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-codegen-plugin</artifactId> <version>${cxf.version}</version> <executions> <execution> <id>generate-sources</id> <phase>generate-sources</phase> <configuration> <sourceRoot>src/main/resources/cxf</sourceRoot> <wsdlOptions> <wsdlOption> <wsdl>http://localhost:8080/cxf-date/services/BookService?wsdl</wsdl> <frontEnd>jaxws21</frontEnd> <faultSerialVersionUID>1</faultSerialVersionUID> </wsdlOption> </wsdlOptions> </configuration> <goals> <goal>wsdl2java</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
这里,添加了一个插件,通过它,可以根据配置的WSDL地址,将代码生成到指定的文件夹
sourceRoot:就是生成文件存放的位置
wsdl:就是WSDL地址
然后,在pom.xml上右键单击,选择run as 下的mvn generate-sources
然后,刷新一下项目,就会看到生成的代码:
好了,先写到这,主要介绍一下使用Maven根据WSDL自动生成Java代码。
相关文章推荐
- CXF学习之旅(三) - 使用Maven根据WSDL生成生成Java代码
- 使用axis2,根据WSDL生成java客户端代码
- 使用wsdl2java根据wsdl生成java客户端代码
- CXF调用客户端根据wsdl文件生成java代码
- 使用axis2,根据WSDL生成java客户端代码
- 使用CXF根据wsdl地址自动生成客户端 (java)
- 利用CXF wsdl2java生成java代码以及使用Apache Axis 1.4 wsdl2java生成java代码
- 使用cmd根据WSDL网址生成java客户端代码
- java wsdl反向生成源码,并使用CXF实现客户端调用代码
- 使用cmd根据WSDL网址生成java客户端代码
- CXF wsdl2java 生成java代码供客户端使用
- 使用maven cxf plugin从wsdl生成java类
- 使用axis2,根据WSDL生成java客户端代码
- java wsdl反向生成源码,并使用CXF实现客户端调用代码
- 使用cxf生成webservice java代码
- 根据wsdl文件或者wsdl地址生成对应的java代码
- 分享:根据webservice WSDL地址自动生成java调用代码及JAR包
- 根据wsdl文件生成java代码
- Axis2中使用wsdl2java.bat生成客户端代码
- 使用wsdl2java命令生成webservice本地调用代码