Spring发布WebService并调用已有的WebService

发布WebService

1.编写生成WebService的Java类

package com.webService;

import com.service.PianoServiceImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

import javax.jws.WebMethod;
import javax.jws.WebResult;
import javax.jws.WebService;

@WebService(name = "PianoService",serviceName = "PianoWebService")
public class PianoWebService {

    @WebMethod(operationName = "getPrice",action = "getPriceByBrand")
    @WebResult(name="price")
    public int getPriceByBrand(String brand){

        ApplicationContext ctx = new FileSystemXmlApplicationContext("src/applicationContext.xml");
        PianoServiceImpl pianoService = (PianoServiceImpl) ctx.getBean("pianoServiceImpl");
        return pianoService.getPriceByBrand(brand);
    }
}

2.发布WebService

public static void main(String[] args) {
        PianoWebService pianoWebService = new PianoWebService();
        Endpoint.publish("http://localhost:8080/pianowebservice",pianoWebService);
        System.out.println("启动webservice");

    }

3.打开浏览器生成URL输入:http://localhost:8080/pianowebservice?wsdl即可浏览到WebService所产生的WSDL全文

调用已有的WebService

1.生成对应的Java文件

C:\Program Files\Java\jdk1.8.0_73\bin>wsimport -d F:\ -s F:\ -p com http://localhost:8080/pianowebservice?wsdl

2.把Java文件拷贝到项目中

3.调用

PianoWebService pianoWebService = new PianoWebService();
        PianoService pianoService = pianoWebService.getPianoServicePort();
        int price = pianoService.getPrice("IQOO");
        System.out.println("获得价格:"+price);

附常用的WebService目录
http://www.webxml.com.cn/zh_cn/web_services.aspx

posted @ 2020-04-01 16:32  两小无猜  阅读(695)  评论(0编辑  收藏  举报