• So easy Webservice 6.使用EndPoint发布webservice服务


    创建第一个Web服务:

    @WebService    // 添加了此注解,代表是一个WebService
    public class HelloWorld {
        // 非 static final private 方法默认会发布
        public String sayHi(String name) {
            return "hello" + name;
        }
    }

    发布web服务:

    public static void main(String[] args) {
            String address="http://127.0.0.1:9999/helloworld";
            // 注册并且发布一个服务,arg0: 服务地址 , arg1:要发布的服务对象
            Endpoint endPoint=Endpoint.publish(address,new HelloWorld());
            // 可以停止服务,或者手动停止
            //endPoint.stop();
        }

    获取发布web服务的信息

    访问wsdl网址为: http://127.0.0.1:9999/helloworld?wsdl
    通过wsimport生成Java代码: 
    Wsimport -s . -p a.b.c http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?WSDL

    将生成的java文件拷贝到项目中,或者打包成jar,放入项目:

    jar -cvf mobile.jar .  // 把当前路径打包成jar文件, 包名为mobile.jar

    调用第一个WebService服务

    public static void main(String[] args) {
            HelloWorldService helloWorldService=new HelloWorldService();
            HelloWorld helloWorld=helloWorldService.getHelloWorldPort();
            System.out.println(helloWorld.sayHi("china"));
    }
    结果:hello,china

    注意事项:

    1. 在类上添加@WebService注解,代表发布一个WebService服务
    2. 通过EndPoint(端点服务)发布一个webService。Endpoint也是jdk提供的一个专门用于发布服务的类,它的publish方法接收两个参数,一个是本地的服务地址,二是提供服务的类。它位于javax.xml.ws.*包中。
    3. Endpoint.publish(String address, Object implementor) 静态方法在给定地址处针对指定的实现者对象创建并发布端点
    4. 给类添加上@WebService注解后,类中所有的非静态方法都将会对外公布
    5. 如果希望某个方法不对外公开,可以在方法上添加@WebMethod(exclude=true),阻止对外公开。
    6. 如果一个类上,被添加了@WebService注解,则必须此类至少有一个可以公开的方法,否则将会启动失败。
    7. protected、private、final、static方法不能对外公开 代码如下:
    8. @WebService    // 添加了此注解,代表是一个WebService
      public class HelloWorld {
          // 非 static final private 方法默认会发布
          public String sayHi(String name) {
              return "hello" + name;
          }
          @WebMethod(exclude=true)
          public void exclude(){
              // 被注解排除的方法
          }
          protected void protected1(){
              //受保护的方法默认不发布
          }
          private void private1(){
              // 私有方法默认不发布
          }
          public static void static1(){
              // static 方法默认不发布
          }
          public final void final1(){
              // final 方法默认不发布
          }
      }
    逃避不一定躲得过,面对不一定最难过
  • 相关阅读:
    float:left的妙用
    ajax实现注册并选择头像后上传
    Javascript中target事件属性,事件的目标节点的获取。
    Bootstrap解决页面缩小变形的办法
    UICollectionView布局功能
    UITaleView的基础使用及数据展示操作
    scrollView实现基础中心点缩放及与UIPageControl结合使用
    自定义UITableViewCell
    属性传值,协议传值,block传值,单例传值四种界面传值方式
    操作符:一元操作符、布尔值操作符(逻辑操作符)、加性操作符、乘性操作符、关系操作符、相等操作符、条件操作符以及赋值操作符
  • 原文地址:https://www.cnblogs.com/yangzhenlong/p/5163908.html
Copyright © 2020-2023  润新知