spring mvc + mybaties + mysql 完美整合cxf 實現webservice接口 (服務端、客戶端)


spring-3.1.2、cxf-3.1.3、mybaties、mysql 整合實現webservice需要的完整jar文件 地址:http://download.csdn.net/detail/xuxiaoyu__/9868032

整合的過程其實很簡單,通過簡單的配置就可以,但是可悲的是 一堆問題都是由於jar缺失或者jar版本沖突引起的,所以附上全部jar文件

發布webservice服務

第一步:編寫接口和實現類

PlcDataDetail.java

 1 package test;
 2 
 3 import java.util.Date;
 4 
 5 public class PlcDataDetail{
 6 
 7     private Integer id;
 8 
 9     private Integer plc_info_address_id;
10 
11     private String value;
12 
13     private Date create_time;
14 
15     public Integer getId() {
16         return id;
17     }
18 
19     public void setId(Integer id) {
20         this.id = id;
21     }
22 
23     public Integer getPlc_info_address_id() {
24         return plc_info_address_id;
25     }
26 
27     public void setPlc_info_address_id(Integer plc_info_address_id) {
28         this.plc_info_address_id = plc_info_address_id;
29     }
30 
31     public String getValue() {
32         return value;
33     }
34 
35     public void setValue(String value) {
36         this.value = value;
37     }
38 
39     public Date getCreate_time() {
40         return create_time;
41     }
42 
43     public void setCreate_time(Date create_time) {
44         this.create_time = create_time;
45     }
46 }
View Code

BaseWebService.java

 1 package xd.service.plc;
 2 
 3 import javax.jws.WebService;
 4 
 5 import xd.persistence.beans.PlcDataDetail;
 6 
 7 /**
 8  * This class was generated by Apache CXF 3.1.6
 9  * 2017-06-12T10:16:26.245+08:00
10  * Generated source version: 3.1.6
11  * 
12  */
13 //必須為targetNamespace賦值,在另一個項目調用接口時,值必須一致,不然會匹配不到
14 //(可以把發布時默認的值賦值給targetNamespace)
15 @WebService(targetNamespace = "http://impl.plc.service.xd/")
16 public interface BaseWebService {
17 
18     public PlcDataDetail readPlcData(Integer id);
19 }

BaseWebServiceImp.java

 1 package xd.service.plc.impl;
 2 
 3 import javax.jws.WebService;
 4 
 5 import org.springframework.beans.factory.annotation.Autowired;
 6 
 7 import xd.persistence.beans.PlcDataDetail;
 8 import xd.service.plc.BaseWebService;
 9 import xd.service.plc.PlcDataDetailService;
10 
11 
12 @WebService(endpointInterface="xd.service.plc.BaseWebService",serviceName="plcDataService")
13 public class BaseWebServiceImp implements BaseWebService {
14     @Autowired
15     private PlcDataDetailService plcDataDetailService;//業務處理類
16     
17     public PlcDataDetail readPlcData(Integer id) {
18         PlcDataDetail plcDataDetail = new PlcDataDetail();
19         plcDataDetail = plcDataDetailService.selectbyId(id);
20         return plcDataDetail;
21     }
22 
23 }

第二步:配置spring的核心文件 application-context.xml

添加命名空間以及配置接口發布信息:

1 xmlns:jaxws="http://cxf.apache.org/jaxws" 
2 xmlns:jaxrs="http://cxf.apache.org/jaxrs"
3 
4 xsi:schemaLocation="http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
5            http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"
6 <!-- address:暴露出來的地址,名稱自己隨便起 ;id屬性此處不加也沒問題-->
<!-- 如果要發布多個接口服務,再配置多個<jaxws/>即可,客戶端調用時創建多個JaxWsPorxyFactoryBean對象就行了 -->
7 <jaxws:endpoint implementor="xd.service.plc.impl.BaseWebServiceImp" address="/ReadPlcData" />

配置web.xml:

 
         

<servlet-name>CXFService</servlet-name>
  <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<!-- 本系統的WebService路徑必須以/ws/開頭 -->
<servlet-mapping>
  <servlet-name>CXFService</servlet-name>
  <url-pattern>/ws/*</url-pattern>
</servlet-mapping>

 訪問:http://localhost:8080/ws  查看是否顯示wsdl (項目通過tomcat配置不需要輸入項目名,同學要注意)  結果

 

 

 客戶端調用接口:

新建一個項目,把服務的接口類BaseWebService.java拷過來,jar也要拷過來哦,編寫測試類:

BaseWebService.java

 1 package test;
 2 
 3 import javax.jws.WebService;
 4 
 5 /**
 6  * This class was generated by Apache CXF 3.1.6
 7  * 2017-06-12T10:16:26.245+08:00
 8  * Generated source version: 3.1.6
 9  * 
10  */
11 @WebService(targetNamespace = "http://impl.plc.service.xd/")
12 public interface BaseWebService {
13 
14     public PlcDataDetail readPlcData(Integer id);
15 }

MyClient.java

 1 package test;
 2 
 3 import java.util.Properties;
 4 
 5 import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
 6 
 7 public class MyClient {
 8     public static void main(String args[]) { 
 9         //下面三行代碼是系統初始化設置,若獨立於服務接口外調用,不加也可以,如果在接口項目內調用需要加上,不然會報錯
10         Properties props = System.getProperties(); 
11         props.setProperty("org.apache.cxf.stax.allowInsecureParser", "1"); 
12         props.setProperty("UseSunHttpHandler", "true");
13         //創建WebService客戶端代理工廠
14         JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
15         //注冊WebService接口   
16         factory.setServiceClass(BaseWebService.class);
17         //設置WebService地址
18         factory.setAddress("http://localhost:8080/ws/ReadPlcData");
19         BaseWebService service = (BaseWebService) factory.create();
20         System.out.println(service.readPlcData(14).getValue());//傳參查詢
21     }
22 }

 

  總結:網上的資源很多,有新資源,也有很久之前的了,在整合的時候出現了很多沖突,要注意自己項目中cxf的版本。比如剛開始順着網上說的 在spring文件中配置下面三行資源,結果總是報錯說找不到,其實在cxf 3.x 版本后就不需要再手動配置了,所以找問題要找最新的,老的不一定適用,用舊版本在開發過程中可能就是個大坑啊。

<import resource="classpath:META-INF/cxf/cxf.xml" />  
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />  
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

 

-----------------------------------------------此處非常有必要有個分割線---------------------------------------------

 

今天項目中需要寫個對外的webservice接口,按照之前即上面的流程操作,結果悲催了,各種錯誤,只好再重新寫了一個服務

框架 :spring mvc-4.3.7 、cxf-3.1.3、apache-maven-3.3.3

第一步、pom(!注意jar包沖突!)

必須:cxf-rt-frontend-jaxws、cxf-rt-transports-http、wsdl4j

刪除: asm、XmlSchema

<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>com.bwdz.fp.saas</groupId>
    <artifactId>vat-web</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>vat-web</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!-- spring版本號 -->
        <spring.version>4.3.7.RELEASE</spring.version>
        <jjwt.version>0.6.0</jjwt.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>3.1.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>3.1.3</version>
        </dependency>
        <!--<dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http-jetty</artifactId>
            <version>3.1.3</version>
        </dependency>-->
        <dependency>
            <groupId>com.alipay.sdk</groupId>
            <artifactId>alipay-sdk-java</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>19.0</version>
        </dependency>
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>${jjwt.version}</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <!-- 表示開發的時候引入,發布的時候不會加載此包 -->
            <scope>test</scope>
        </dependency>
        <!-- spring核心包 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- <dependency> <groupId>org.springframework</groupId> <artifactId>spring-asm</artifactId> 
            <version>${spring.version}</version> </dependency> -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-web -->
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-web</artifactId>
                <version>4.2.2.RELEASE</version>
            </dependency>
        
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>aopalliance</groupId>
            <artifactId>aopalliance</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.9</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.6.8</version>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.7.0</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2.1</version>
        </dependency>
        <dependency>
            <groupId>commons-discovery</groupId>
            <artifactId>commons-discovery</artifactId>
            <version>0.2</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.2.2</version>
        </dependency>
        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>3.0-rc4</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.7</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>1.7.21</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.1.7</version>
        </dependency>
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
        </dependency>

        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache-core</artifactId>
            <version>2.6.10</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpasyncclient</artifactId>
            <version>4.0.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore-nio</artifactId>
            <version>4.4.3</version>
        </dependency>
        
        <dependency>  
            <groupId>org.apache.httpcomponents</groupId>  
            <artifactId>httpclient</artifactId>  
            <version>4.5</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.apache.httpcomponents</groupId>  
            <artifactId>httpmime</artifactId>  
            <version>4.5</version>  
        </dependency>
        <dependency>
            <groupId>com.maxmind.geoip2</groupId>
            <artifactId>geoip2</artifactId>
            <version>2.8.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlbeans</groupId>
            <artifactId>xmlbeans</artifactId>
            <version>2.5.0</version>
        </dependency>
        <!--<dependency>
            <groupId>org.apache.ws.commons</groupId>
            <artifactId>XmlSchema</artifactId>
            <version>1.1</version>
        </dependency>-->
        <dependency>
            <groupId>com.itextpdf.tool</groupId>
            <artifactId>xmlworker</artifactId>
            <version>1.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.4</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.34</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-excelant</artifactId>
            <version>3.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>3.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-scratchpad</artifactId>
            <version>3.9</version>
        </dependency>

        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>1.7</version>
        </dependency>
        <!--<dependency>
            <groupId>asm</groupId>
            <artifactId>asm</artifactId>
            <version>3.1</version>
        </dependency>-->
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-all</artifactId>
            <version>1.2.3</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.9</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.8.5</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.8.5</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <version>1.9.13</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.5</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.13</version>
        </dependency>
        <dependency>
            <groupId>net.sf.ezmorph</groupId>
            <artifactId>ezmorph</artifactId>
            <version>1.0.6</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session</artifactId>
            <version>1.3.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
            <version>1.3.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>
        <dependency>
            <groupId>javax.xml.rpc</groupId>
            <artifactId>javax.xml.rpc-api</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!-- axis 1.4 jar start -->
        <dependency>
            <groupId>org.apache.axis</groupId>
            <artifactId>axis</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-discovery</groupId>
            <artifactId>commons-discovery</artifactId>
            <version>0.2</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>wsdl4j</groupId>
            <artifactId>wsdl4j</artifactId>
            <version>1.6.2</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.19</version>
        </dependency>
        <dependency>
            <groupId>org.xhtmlrenderer</groupId>
            <artifactId>core-renderer</artifactId>
            <version>R8</version>
        </dependency>

    </dependencies>
    <profiles>
        <profile>
            <id>dev</id>
            <properties>
                <profiles.active>dev</profiles.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>product</id>
            <properties>
                <profiles.active>product</profiles.active>
            </properties>
        </profile>
    </profiles>
    <build>
        <finalName>vat-web</finalName>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <excludes>
                    <exclude>product/*</exclude>
                    <exclude>dev/*</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources/${profiles.active}/</directory>
            </resource>
        </resources>
        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.1.0</version>
                    <configuration>
                        <filesets>
                            <fileset>
                                <directory>src/main/webapp/WEB-INF/classes</directory>
                            </fileset>
                        </filesets>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.3</version>
                    <configuration>
                        <source>1.8</source><!-- 源代碼使用的開發版本 -->
                        <target>1.8</target><!-- 需要生成的目標class文件的編譯版本 -->
                        <encoding>UTF-8</encoding>
                        <optimize>true</optimize>
                        <debug>true</debug>
                        <showDeprecation>true</showDeprecation>
                        <showWarnings>false</showWarnings>
                    </configuration>
                </plugin>
                <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <webappDirectory>src/main/webapp</webappDirectory>
                </configuration>
            </plugin>
            </plugins>
        </pluginManagement>
    </build>

</project>
View Code

第二步:編寫服務端接口和實現類:

BaseWebService接口類:

package com.bwdz.fp.saas.service.test;

import javax.jws.WebService;


@WebService
public interface BaseWebService {
  
/**
* 此處有陷阱:返回類型如果是List<Map>會報錯,
* 如果執意這樣寫,可以寫個轉換器,具體實現自行百度哈
**/
public String readPlcData(Integer id); }

BaseWebServiceImp實現類:

package com.bwdz.fp.saas.service.test;

import com.bwdz.fp.saas.service.fphs.DzdzkZpsjTbService;
import org.springframework.beans.factory.annotation.Autowired;

import javax.jws.WebService;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;


//@Service
@WebService(endpointInterface="com.bwdz.fp.saas.service.test.BaseWebService")
public class BaseWebServiceImp implements BaseWebService{
    @Autowired
    private DzdzkZpsjTbService dzdzkZpsjTbService;


    @Override
    public String readPlcData(Integer id) {
        List<Map> map = new ArrayList<>();
        try{
            map =  dzdzkZpsjTbService.getAllMcpsh(id+"");
        }catch (Exception e){

        }
        return map.toString();
    }
}

 

第三步:配置spring的核心文件 application-context.xml

添加命名空間以及配置接口發布信息:

<?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:context="http://www.springframework.org/schema/context"
       xmlns:task="http://www.springframework.org/schema/task"
       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://www.springframework.org/schema/context 
                        http://www.springframework.org/schema/context/spring-context.xsd
                        http://www.springframework.org/schema/task
                        http://www.springframework.org/schema/task/spring-task.xsd
                        http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">

<jaxws:endpoint id="myService"
implementor="com.bwdz.fp.saas.service.test.BaseWebServiceImp" address="/web-publish" >//address是暴漏的方法名,隨便定義
</jaxws:endpoint>
 

第四步:配置web.xml:

  <servlet>
        <description>CXF Endpoint</description>
        <display-name>cxf</display-name>
        <servlet-name>cxf</servlet-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>cxf</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

最后一步就是見證奇跡的時候了:

訪問:http://localhost:8080/vat-gap/services/

 

對外只要提供一個wsdl地址就可以了:http://localhost:8080/vat-gap/services/web-publish?wsdl

客戶端調用 參考我之前寫的文章  https://www.cnblogs.com/maxmoore/p/9965218.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM