当前位置: 首页 > 图灵资讯 > 技术篇> WebService的简单使用

WebService的简单使用

来源:图灵教育
时间:2023-05-29 14:04:32

1.创建服务端-java项目

@WebServicepublic class MyFirstWebService {    /**     * 在webservice服务器中定义方法     * @param content     * @return     */    public String testWebService(String content){        System.out.println(”我收到了你发的信息:" + content);        return “服务器:我把信息转发给你”;    }        public static void main(String[] args){    /*  InetAddress addr = null;        try {            addr = InetAddress.getLocalHost();        } catch (UnknownHostException e) {            e.printStackTrace();        }        String hostAddress = addr.getHostAddress();        System.out.println(hostAddress);*/        ///定义您的webservice服务器发布的地址  MyFirstWebService 服务器名称        ///部署到服务器时 需要将ip改为 0.0.0.0 只有外网才能访问        String address = "http:/+0.0.0.0"+":10086/MyFirstWebService"; //这个9090端口随意定义,只要没有冲突        ////通过这种方法发布        Endpoint.publish(address, new MyFirstWebService());        //打印一句话,表示服务器已打开        System.out.println("my webservcie starting");    }}

2.发布到服务器

做成jar包后 复制到服务器java -jar xxxxx.jar 运行即可# 必须注意外网访问 0.0.0.0

3.访问

http://xxx.xxx.xxx.xxx:10086/MyFirstWebService?xml出现在wsdl中,即成功

4.本地分析服务

在客户端项目目录下(src\main\java) cmd Wsimport操作命令 -s . http://152.136.150.136:10086/MyFirstWebService?wsdl

5.创建Main测试模式

public class Main {    public static void main(String[] args) {        ///获取webservice服务器对象(这里的类名,实际上是从wsdl文件中的servicename标签中获得的)        MyFirstWebServiceService myFirstWebServiceService = new MyFirstWebServiceService();        ///获取我们定制的webservice对象        MyFirstWebService myFirstWebServicePort = myFirstWebServiceService.getMyFirstWebServicePort();        ////在service服务器中调用方法        String receivedInfo = myFirstWebServicePort.testWebService("您好,webservice 服务器");        ///打印从服务器方法中获得的返回值,测试表示已收到服务器返回的内容        System.out.println(”服务器返回的内容是:" + receivedInfo);    }}

方式二 QName

public class QNameMain {    public static void main(String[] args) throws MalformedURLException {        //创建连接(地址对应webservice服务器中的地址)        URL wsdlDocumentLocation = new URL("http://xxx.xxx.xxx.xxx:10086/MyFirstWebService?wsdl");        //这个参数主要是基于我们设置的webService接口。        //  QName serviceName = new QName("http://webservice.scw.hnu.com/","MyFirstWebServiceService");        ///这里的第一个参数是包名 倒序 //如果错了 会报错 可根据报错情况进行修改        QName serviceName = new QName("http://webservice.example.com/", "MyFirstWebServiceService");        Service ws = Service.create(wsdlDocumentLocation, serviceName);        ////获取调用对象的内容        MyFirstWebService port = ws.getPort(MyFirstWebService.class);        ///调用方法        String result = port.testWebService("my name is scw");        System.out.println(result);    }}

6.备注

第四步分析后生成文件

com/example/webservice   (与服务端相同)文件包括: (仅保留.java文件即可)MyFirstWebService.classMyFirstWebService.java (接口,主要使用方法)MyFirstWebServiceService.classMyFirstWebServiceService.javaObjectFactory.classObjectFactory.javapackage-info.classpackage-info.javaTestWebService.classTestWebService.javaTestWebServiceResponse.classTestWebServiceResponse.java