zoukankan      html  css  js  c++  java
  • webservice入门(2)开发ws程序

    因为webservice分为服务端和客户端,所以如果要学习的话,那么肯定是包括这两部分的了。

    1.开发服务端的webservice:

      使用jdk开发ws其实很简单,只是需要一些注解:最重要的是

    @WebService,@WebMethod

    这两个注解,分类在类和方法上面注解。注明这是一个ws接口,然后在实现就可以了,下面是例子:

    /**
     * SEI 接口
     * @author Hotusm
     *
     */
    @WebService
    public interface HelloWs {
        
        @WebMethod
        public String sayHello(String name);
    }

    我们声明了一个接口,然后在类上和方法上面都使用注解标记,然后我们在实现这个接口:

    @WebService
    public class HelloWsImpl implements HelloWs{
    
        @Override
        public String sayHello(String name) {
            System.out.println("SEI IMPL");
            return "hello "+name;
        }
    
    }

    这样一个ws的helloword就写好了,下面就剩下怎么发布ws了,我们要使用到jdk提供给我们方法了:

        Endpoint publish = Endpoint.publish("http://127.0.0.1:9999/WebService/hellows", new HelloWsImpl());//这里我们使用的是实现的那个方法。

    注意,如果是java app的话,建议不要使用127.0.0.1而应该获取到本机的真是端口号,这样别人就能够调用你的ws了。还有就是这个端口不能够被占用了。不然是会报错的:,,最后发布完以后,我们可以通过流浪器打开地址http://127.0.0.1:9999/WebService/hellows?wsdl,如果看到xml文件,那么就证明发布成功啦。

    2.开发客户端的ws

    开发客户端代码会分为两部分:

    1.获取wsdl文件,这个获取除了网上的那个地址,也有可能是第三方发给你的一个wsdl文件
    2.使用jdk提供的工具生成客户端主体代码。
    下面来示例一下:
      1.第一步一般只是准备工作,没什么好讲的只是讲一下怎么生成客户端代码。我们使用到了java的一个工具,在jdk的bin目录里面有一个,我们可以使用这个工具来帮助我们生成代码。

      ①。使用cmd,切换到存放生成代码的地方(这里需要注意下,生成的包名和服务器中的包名是一致的,所以别放在服务器的src下面,不然就覆盖了)。:

    D:ww>wsimport -keep http://127.12.0.1:9999/WebService/hellows?wsdl

    这样,在d盘的ww文件夹下面就生成了这样的一个结构的包和一些类。下面怎么使用这些东西呢?

    HelloWsImplService factory=new HelloWsImplService();
    //一般情况下,你只需要看哪一个类继承了service,那么这个类就是factory了:public class HelloWsImplService extends Service {...} HelloWs helloWsImplPort
    = factory.getHelloWsImplPort();//然后通过工厂获取到操作类,就是真正有意义的那个类
    helloWsImplPort.sayHello(
    "hotusm");

    如果是一个储存在磁盘上的wsdl,我们需要这样来生成:

    wsimport -keep D:jeesiteWebServiceTestsrcweather.wsdl

    其他的操作都是一样的。

     CXF开发:cxf开发和jdk的开发是差不多的。差别是加上cxf的架包。

  • 相关阅读:
    利用相关的Aware接口
    java 值传递和引用传递。
    权限控制框架Spring Security 和Shiro 的总结
    优秀代码养成
    Servlet 基础知识
    leetcode 501. Find Mode in Binary Search Tree
    leetcode 530. Minimum Absolute Difference in BST
    leetcode 543. Diameter of Binary Tree
    leetcode 551. Student Attendance Record I
    leetcode 563. Binary Tree Tilt
  • 原文地址:https://www.cnblogs.com/zr520/p/5119795.html
Copyright © 2011-2022 走看看