Web Service示例Demo

服務端(Java): 

package com.ningshe.module.user.service;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;

import com.jfinal.plugin.activerecord.Db;

@WebService
public class WebServiceDemo {

    @WebMethod(operationName = "getMsg")
    @WebResult(name = "ret")
    public String getMsg() {
        return "獲取消息";
    }

    @WebMethod(operationName = "getUserCount")
    @WebResult(name = "result")
    public Long getUserCount() {
        return Db.queryLong("SELECT COUNT(*) FROM role_user");
    }

    @WebMethod(operationName = "updateOrder")
    @WebResult(name = "result")
    public String updateOrder(@WebParam(name = "reqParams") String reqParams) {
        System.out.println(reqParams);
        return reqParams;
    }

    @WebMethod(operationName = "createOrder")
    @WebResult(name = "result")
    public String createOrder(@WebParam(name = "reqParams") String reqParams) {
        System.out.println(reqParams);

        return reqParams;
    }

    public static void main(String[] args) {
        // 發佈WebService服務
        Endpoint.publish("http://192.168.2.22:2019/ws_server/mallsrv", new WebServiceDemo());
        System.out.println("發佈WebService服務成功...");

        // 瀏覽器訪問 http://localhost:2019/ws_server/mallsrv?wsdl
    }

}

客戶端(Java):

先用JDK工具wsimport,拉取遠程代碼,如:

wsimport -keep http://192.168.2.22:2019/ws_server/mallsrv?wsdl

測試代碼: 

package test;

import com.ningshe.module.user.service.WebServiceDemo;
import com.ningshe.module.user.service.WebServiceDemoService;

public class TestWs {
    public static void main(String[] args) {
        WebServiceDemoService factory = new WebServiceDemoService();
        WebServiceDemo servicePort = factory.getWebServiceDemoPort();
        System.out.println(servicePort.getMsg());
        System.out.println(servicePort.getUserCount());
        
        System.out.println(servicePort.updateOrder("<xml><o>D8329048293084032<o/><xml/>"));
        
        
        // JDK 命令   
        //  wsimport  -keep  [url]
    }
}

客戶端(Node.js)

先安裝依賴:npm i soap

var soap = require('soap');
var url = 'http://192.168.2.22:2019/ws_server/mallsrv?wsdl';

var args = { reqParams: '<xml><onumber>D487347293749823</onumber></xml>' };

var soaptest = function() {
    soap.createClient(url, function(err, client) {
        client.getMsg(function(err, result) {
            console.log(result);
        });
        client.getUserCount(function(err, result) {
            console.log(result);
        });
        client.createOrder(args, function(err, result) {
            console.log(result);
        });
    });
};
soaptest();

 特別注意:在服務器環境,啓動Web Service服務時,可能報IP綁定異常,可以嘗試綁定內網的IPv4地址,然後用公網IP測試訪問!我這裏貌似就是阿里雲的內網IP地址。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章