0
点赞
收藏
分享

微信扫一扫

WebService的简单使用

1.创建服务端-java项目

@WebService
public 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?wsdl
出现xml即成功

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.备注

第4步解析后生成文件

com/example/webservice   (与服务端相同)
文件包括: (仅保留.java文件即可)
MyFirstWebService.class
MyFirstWebService.java (接口,主要使用的方法)
MyFirstWebServiceService.class
MyFirstWebServiceService.java
ObjectFactory.class
ObjectFactory.java
package-info.class
package-info.java
TestWebService.class
TestWebService.java
TestWebServiceResponse.class
TestWebServiceResponse.java




举报

相关推荐

0 条评论