• cxf方式实现WebService的简单实例


    cxf实现WebService的发布和调用简单实例。

    1、准备工作:下载cxf  http://cxf.apache.org/download.html

      lib文件下的WHICH_JARS文件列出了各用途下所需的jar包。

      bin目录下存放运行文件。

    2、服务端:先新建接口和相关的实现类。发布的服务是接口的方式。

      代码如下

     1 package com.liujf;
     2 
     3 import javax.jws.WebParam;
     4 import javax.jws.WebService;
     5 
     6 @WebService
     7 public interface IWebService
     8 {
     9     String sayHi(@WebParam(name = "text") String text);
    10 }
     1 package com.liujf;
     2 
     3 import javax.jws.WebService;
     4 
     5 @WebService(endpointInterface = "com.liujf.IWebService", serviceName = "helloTest")
     6 public class WebServiceImpl implements IWebService
     7 {
     8     
     9     @Override
    10     public String sayHi(String text)
    11     {
    12         // TODO Auto-generated method stub
    13         return "Welcome " + text;
    14     }
    15     
    16 }

      然后建立发布的方法:

     1 package com.liujf;
     2 
     3 import javax.xml.ws.Endpoint;
     4 
     5 public class ServicePublish
     6 {
     7     public static void main(String[] args)
     8     {
     9         System.out.println("web service start");
    10         WebServiceImpl implementor = new WebServiceImpl();
    11         String address = "http://192.168.16.101:8080/helloTest";
    12         Endpoint.publish(address, implementor);
    13         System.out.println("web service started");
    14     }
    15 }

      运行发布代码的main方法,Web Serice服务即发布成功。

      浏览器输入http://192.168.16.101:8080/helloTest?wsdl 可以打开wsdl文件。

    3、客户端:首先需要把服务相关的接口类导入到本地。

      调用bin目录下的wsdl2java.bat文件:in>wsdl2java http://192.168.16.101:8080/helloTest?wsdl

      生成对应的java类,拷贝到客户端工程目录下。然后可编写调用服务代码进行测试。

      

     1 import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
     2 
     3 import com.liujf.IWebService;
     4 
     5 public class WebServiceTest
     6 {
     7     public static void main(String[] args)
     8     {
     9         // 创建WebService客户端代理工厂
    10         JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
    11         // 注册WebService接口
    12         factory.setServiceClass(IWebService.class);
    13         // 设置WebService地址
    14         factory.setAddress("http://192.168.16.101:8080/helloTest");
    15         IWebService webService = (IWebService)factory.create();
    16         System.out.println("invoke webservice...");
    17         System.out.println("message context is:" + webService.sayHi("LJF"));
    18     }
    19 }

      控制台打印结果如下:

      

    1 invoke webservice...
    2 message context is:Welcome LJF

      发布和调用过程完成。

  • 相关阅读:
    java 微信公众号素材 新增其他类型永久素材
    @schedule
    idea 打包的jar运行报 “XXX中没有主清单属性”
    openjdk没有ssl支持的相关证书包,导致使用HTPPS调用第三方接口时候报错误 InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
    查询端口是否开通
    企业微信-之无法修改成员手机号
    PostgreSQL使用distinct关键字给单独的几列去重
    centos全屏幕退出:Alt+Enter
    github上OC 和swift框架精选
    github每日精选---iOS版
  • 原文地址:https://www.cnblogs.com/moleme/p/5024059.html
Copyright © 2020-2023  润新知