zoukankan      html  css  js  c++  java
  • 基于 jdk1.7 发布一个 WebService 服务

    1 服务端的发布

    第一步: 创建一个 Java 项目
    第二步: 创建一个类, 加入 Webservice 注解
    第三步: 提供一个方法 sayHello
    第四步: 在 main 方法中调用 jdk 提供的发布服务的方法

    第五步:访问服务的 wsdl文档(服务的发布地址+?wsdlhttp://192.168.31.247:8888/hello?wsdl

    package com.test.webservice;
    
    import javax.jws.WebService;
    import javax.xml.ws.Endpoint;
    
    //1、给类添加注解
    @WebService
    public class HelloService {
        
        //2、声明实例方法
        public String sayHello(String name,int age){
            System.out.println("服务端的 sayHello 方法被调用了。 。 。 。 ");
            return "hello:"+name+"---age:"+age;
        }
        
        public static void main(String[] args) {
            String address = "http://192.168.31.247:8888/hello";
            Object implementor = new HelloService();
            //3 使用端点服务,将对象绑定到一个地址和端口。同时必须要在端口后面给服务取一个名称
            //第一个参数称为Binding即绑定地址,
            //第二个参数是实现者,即谁提供服务
            Endpoint.publish(address, implementor);
        }
    }

    运行上面的程序,可以看到程序一直处于运行状态,这和以前我们运行main程序一闪而过是不一样的。

    我们可以在浏览器中访问wsdl文档:查看的效果如下

    2 客户端调用

    1 jdk 中 wsimport 命令使用

    作用: 解析 wsdl 文件, 生成客户端本地代码

    针对上面的第一个服务我们执行命令:wsimport -s . http://192.168.31.247:8888/hello?wsdl

    得到的代码如下:

    2 客户端调用

    1、 使用wsimport命令解析wsdl文件生成本地代码
    2、 通过本地代码创建一个代理对象
    3、 通过代理对象实现远程调用

     复制生成的所有的.java文件到项目中

    创建类调用服务

    package com.test.webservice;
    
    /**
     * 1、 使用 wsimport 命令解析 wsdl 文件生成本地代码
     * 2、 通过本地代码创建一个代理对象
     * 3、 通过代理对象实现远程调用
     * @author jepson
     *
     */
    public class App {
        public static void main(String[] args) {
            HelloServiceService ss = new HelloServiceService();
            
            HelloService proxy = ss.getHelloServicePort();
            
            String s= proxy.sayHello("tom", 25);
            
            System.out.println(s);
        }
    }

     运行上面的代码结果为:

     服务程序运行结果为:

    看懂使用说明书WSDL

  • 相关阅读:
    TypeScript 里 interface 和 type 的区别
    TypeScript 定义函数的几种写法
    什么是 TypeScript 里的 Constructor signature
    Linux 主要的发行系统版本介绍
    PHP跨域
    26. Remove Duplicates from Sorted Array
    关于hashmap的文章
    1. Two Sum
    qt5-资源与图像
    qt--QDialogButtonBox按钮盒
  • 原文地址:https://www.cnblogs.com/jepson6669/p/8884629.html
Copyright © 2011-2022 走看看