jax-ws實現WebService


關於WebService有很多框架了,CXF,Spring自己的webservice等等,因為cxf實際也是依賴spring的servlet,這里說明一下jax-ws,使用原生的servlet實現。

比較簡單,maven3+servlet3,servlet3不需要在web.xml中配置servlet了,直接貼代碼了

maven依賴:

        <dependency>
            <groupId>com.sun.xml.ws</groupId>
            <artifactId>jaxws-rt</artifactId>
            <version>2.2.10</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.ws</groupId>
            <artifactId>jaxws-api</artifactId>
            <version>2.2.11</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-core</artifactId>
            <version>2.2.11</version>
        </dependency>
            <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.2.11</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.stream.buffer</groupId>
            <artifactId>streambuffer</artifactId>
            <version>1.5.3</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.ws</groupId>
            <artifactId>policy</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.gmbal</groupId>
            <artifactId>gmbal-api-only</artifactId>
            <version>3.2.0-b003</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.ha</groupId>
            <artifactId>ha-api</artifactId>
            <version>3.1.9</version>
        </dependency>
        <dependency>
            <groupId>org.jvnet.staxex</groupId>
            <artifactId>stax-ex</artifactId>
            <version>1.7.7</version>
        </dependency>        

本篇文檔不解釋細節,先把webservice起來再說,WEB-INF下添加sun-jaxws.xml

<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">
    <endpoint name="hello" implementation="com.star.HelloImpl" url-pattern="/services/hello" />
</endpoints>

下面寫最簡單的HelloWorld

import javax.jws.WebService;

/**
 * WebService接口
 */
@WebService
public interface McSendSMS {

    public String sayHello(String name);
    
}
import javax.jws.WebService;

@WebService(endpointInterface = "com.star.Hello")
public class HelloImpl implements Hello{
    
    @Override
    public String sayHello(String name) {
        System.out.pring("666")
        return "hello" + name;
    }
}

接下來直接發布,jetty,tomcat隨便,這里使用jetty,好了,訪問路徑:http://localhost:8888/services/hello,客戶端直接根據wsdl地址生成就OK。

喜歡請關注微信公眾號:碼農小麥


免責聲明!

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



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