JAVA WebService学习(二)

参考文章WebService学习总结(三)——使用JDK开发WebService我的WebService学习是根据这位博主的文章学习的,很简单。有兴趣可以去看下

一、WebService的开发手段

  1. 使用jdk开发(1.6以上开发版本包括1.6)
  2. 使用CFX框架开发(工作中)

二、使用jdk开发WebService
2.1 开发WebService服务端

  1. 定义一个interface,使用@WebService注解标注接口,使用@WebMethod标注接口中定义的所有方法,上代码
package com.gss.web;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public interface WeatherInterface {
    @WebMethod
    public String sayHello(String name);
}
  1. 编写实现类,使用@WebService注解标注类,并且实现所有的方法
package com.gss.web;


import javax.jws.WebService;

@WebService
public class WeatherImpl implements WeatherInterface {
    @Override
    public String sayHello(String name) {
        String hello = "你好:" + name;
        return hello;
    }
}

3.使用Endpoint终端类发布webservice,上代码

package com.gss.web;


import javax.xml.ws.Endpoint;

public class WeatherServer {
    public static void main(String[] args) {
        System.out.println("----- 开始发布 ------");
        Endpoint.publish("http://127.0.0.1:8909/weather",new WeatherImpl());
        System.out.println("----- 发布成功 ------");
    }
}

运行WeatherServer 类,就可以将编写好的WebService发布好了,WebService的访问URL是:http://127.0.0.1:8909/weather

在这里插入图片描述

这里使用了一个类用来发布webservice,如果是用web项目,可以使用监听器来启动webservice

package com.gss.listener;

import com.gss.ws.WatherServer;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.xml.ws.Endpoint;

public class WebServicePublishListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        Endpoint.publish("http://127.0.0.1:8081/weather",new WatherServer());
        System.out.println("发布成功");
    }

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {

    }
}

在web.xml添加监听器启动

<listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener<listener-class>
<listener>

然后启动tomcat便可以看到发布成功了。

发布成功的图片就不展示了!很简单
关于发布WebService主要就是通过javax.xml.ws.Endpoint类提供的静态方法publish进行发布,如果是普通的java项目,那么可以专门写一个类用于发布WebService,如果是Web项目,那么可以使用ServletContextListener或者Servlet进行发布。

2.2、 开发WebService客户端

  1. 借助jdk的wsimort.exe工具生成客户端代码,wsimort.exe工具位于jdk的bin 目录下面,如下图所示:
    在这里插入图片描述

执行命令 : wsimport -keep url (url 为wsdl文件的路径),生成客户端代码
创建一个webservice客户端测试项目,如图所示:
在这里插入图片描述

打开cmd命令行 ,进入到src目录下面,执行“wsimport -keep url”
如果报没有这个命令的错误,那就是你的jdk的环境变量配置错误,自行百度。

在这里插入图片描述

如果没有报错,就成功生成了!
下图是生成的项目结构

在这里插入图片描述

wsimport工具帮我们生成了好多类,但是我们只需要关心ImplService和ServceImpl类
创建一个Client类,直接上代码把

package com.gss.client;

import com.gss.web.WeatherImpl;
import com.gss.web.WeatherImplService;

public class WSClient {

    public static void main(String[] args) {
        WeatherImplService factory = new WeatherImplService();
        WeatherImpl wsImpl = factory.getWeatherImplPort();
        String gss = wsImpl.sayHello("gss");
        System.out.println("调用方法后返回的是:" + gss);
        System.out.println("_______________________________");
    }
}

执行结果就是你相当于访问了服务器端的方法并且返回了结果。
在这里插入图片描述
大概就这么多啦。

第四篇举例子直接放原博主的了

猜你喜欢

转载自blog.csdn.net/qq_40990836/article/details/83789815