美文网首页
WebService接口教程(附EOS的wsdl快捷开发)

WebService接口教程(附EOS的wsdl快捷开发)

作者: 笑才 | 来源:发表于2017-07-06 18:39 被阅读0次

    1、作用:应用程序之间的交流的桥梁
    2、简单实例一:(纯Java代码实现)
    2.1、新建一个java项目(我用的的Eclipse的进一步封装版EOS,此列与开发工具无关)
    2.2、创建如下目录及Java类和接口

    2017-07-06_180317.png

    其中sayHello.java为接口,代码如下:

    import javax.jws.WebMethod;
    import javax.jws.WebParam;
    import javax.jws.WebService;
    //注意加注释
    @WebService
    public interface sayHello {
        @WebMethod
        public  void say();
        @WebMethod
        public  void set(@WebParam(name = "arg") String arg);
    }
    
    

    sayHelloImpl.java为sayHello接口实现类,代码如下:

    import javax.jws.WebMethod;
    import javax.jws.WebService;
    
    @WebService
    public class sayHelloImpl implements sayHello {
        public String yuju = new String();
        @Override
        @WebMethod
        public void say() {
            System.out.println("我想说:"+yuju);
        }
        @Override
        @WebMethod
        public void set(String arg) {
            yuju = arg;
        }
    }
    

    server.java为服务类,用于启动服务,代码如下:

    import javax.xml.ws.Endpoint;
    
    public class server {
        public static void main(String[] args) {
            server server = new server();
            sayHelloImpl s = new sayHelloImpl();
            Endpoint.publish("http://127.0.0.1:8080/say", s);   
        }
    }
    

    client.java为客户端类,用于处理wsdl接口的(处理别人提供的接口),这个地方不便于演示(此处我用被注释的java代码测试),因为一个服务器启动服务之后就不能另行运行这个类连接了,如果要测试,需用两台服务器,代码粘贴进来如下:

    import javax.sound.midi.Receiver;
    import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
    
    public class client {
        public static void main(String[] args) {
            /*String yuju = new String();
            sayHello s = new sayHelloImpl();
            yuju = "我爱你";
            s.set(yuju);
            s.say();*/
            client c =new client();
            JaxWsProxyFactoryBean j =new JaxWsProxyFactoryBean();
            j.setServiceClass(Receiver.class);
            j.setAddress("Http://127.0.0.1:8080/say");
            sayHello r =(sayHello)j.create();
            r.set("我爱你!");
            r.say();    
        }
    }
    

    注意:如果运用客户端程序处理别人的接口需要引入一个jar包:cxf-2.7.11.jar,此jar包不能与服务放在一起,不然会有干扰报错
    2.3、测试
    2.3.1、运行服务程序

    2017-07-06_182328.png
    该接口绑定地址及端口为:http://127.0.0.1:8080/say,我们可以在浏览器上访问:http://127.0.0.1:8080/say?wsdl测试一下
    2.3.2、浏览器测试 2017-07-06_182603.png

    这表明接口发布正常
    2.3.3、java代码测试

    public static void main(String[] args) {
            String yuju = new String();
            sayHello s = new sayHelloImpl();
            yuju = "我爱你";
            s.set(yuju);
            s.say();
        }
    

    运行代码可得到如下结果:

    2017-07-06_183035.png

    此图说明整个接口代码没有问题

    2.4、总结:
    到此一个最简单的webservice接口已经开发好了,其它复杂的接口都是基于这个框架开发出来的,复杂的接口无非就是加一些数据库访问,复杂的逻辑处理,日志处理、文件处理、缓存处理等,但这些东西要用代码实现对java功底不是很深厚的程序员来说是比较困难的,但不要紧,普元公司出的一个中间件EOS对于开发接口是非常简单的,下面我就来演示一下EOS如何简单快速开发接口。

    2.5、扩展:
    上面演示了一个简单的接口发布,但这个发布是基于java类运行的,如果想开发独立服务的接口,就需要把代码放入服务器(我们用tomcat演示),但以上代码放在服务器里,启动服务器是没有效果的,需要做如下操作:
    2.5.1、新建一个动态web项目:

    2017-08-17_174950.png

    2.5.2、把之前写的代码放入 java Resources/src/[自定义包名]里
    2.5.3、在包中新建一个publish类(监听器),类的代码如下:

    package com;
    
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.xml.ws.Endpoint;
    
    /**
     * Servlet implementation class publish
     */
    @WebServlet(value = "",loadOnStartup = 0)
    public class publish extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        /**
         * Default constructor. 
         */
        public publish() {
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see Servlet#init(ServletConfig)
         */
        public void init() throws ServletException {
            // TODO Auto-generated method stub
            server server = new server();
            sayHelloImpl s = new sayHelloImpl();
            String address = "http://127.0.0.1:8080/say";
            Endpoint.publish(address, s);
            System.out.println("服务启动成功");
        }
    
    }
    

    2.5.4、把项目打包(war包),放入tomcat服务器中,启动服务器,即可部署。
    2.5.5、webserver的开发不在细讲,想要继续深入了解,请自行找相关教程看,看到这,一个基本的接口开发过程应该是已经清楚了。

    3、EOS开发接口
    未完,待续。。。。。。

    相关文章

      网友评论

          本文标题:WebService接口教程(附EOS的wsdl快捷开发)

          本文链接:https://www.haomeiwen.com/subject/zefkhxtx.html