Eclipse上利用cxf将POJO发布成web service的过程

简介: eclipse的版本去这个url官网下载http://cxf.apache.org/download.html 然后配置环境变量添加到path

eclipse的版本
_
去这个url官网下载
http://cxf.apache.org/download.html
_

_
然后配置环境变量
_
添加到path
_
以上都是准备工作,eclipse用来编写普通的java的pojo,然后利用cxf包发布wsdl。这样服务端的项目发布了wsdl以后,自己的使命就完成了。
然后我们需要一个client项目,在client所在的pc上使用cmd命令行使用cxf的命令,将wsdl转换成java。将上述java文件导入到client项目中。然后在client项目上使用服务端的web service。
下面我们来截图描述上述过程:
首先为我们的eclipse配置cxf的runtime也就是我们刚刚下载解压缩配置环境变量的CXF_HOME,如下图
_
_
_
然后为我们的项目,也就是服务端的项目,添加cxf的支持,如下图:
_
经过上述配置,我们的服务端的项目中的pojo代码,就可以使用cxf的jar了。
然后我们开始编码,写一个简单的服务,也就是pojo也就是以后被发布成web service的java类。
写完以后如下所示:
_
我们看一下代码的具体内容,三个文件

  • SlashInterface.java接口
  • SlashImplement.java实现类(服务本身)
  • DentalPOJO.java发布webservice的发布类

然后代码如下:
SlashInterface.java

package com.dental;

import javax.jws.WebService;

@WebService
public interface SlashInterface {
    int add(int a,int b);
    String strAdd(String a,String b);

}

SlashImplement.java

package com.dental;

import javax.jws.WebService;

@WebService(endpointInterface="com.dental.SlashInterface",serviceName="skss")
public class SlashImplement implements SlashInterface {

    @Override
    public int add(int a, int b) {
        // TODO Auto-generated method stub
        return a + b + 25;
    }

    @Override
    public String strAdd(String a, String b) {
        // TODO Auto-generated method stub
        return a + b;
    }

}

DentalPOJO.java发布类

package com.dental;

import javax.xml.ws.Endpoint;

public class DentalPOJO {
    
    public static void main(String[] args) {
        
             //新建一个服务类的实例
        SlashImplement sim = new SlashImplement();
            //配置一个地址
        String address = "http://localhost:6054/skss";
             //发布web service
        Endpoint.publish(address, sim);
             //调试辅助信息
        System.out.println("great baby-------------");
        
    }

}

经过上述配置和编码,我们已经准备好了服务器端的内容。下面我们发布wsdl:
_
_
现在,发布完成了。我们需要去浏览器上看看这个wsdl文件:
_
好的,下面我们准备client端的工作了。

事实上,我们在同一个PC上的同一个eclipse上进行编码。但是我们在本文中,涉及到两个eclipse上的项目。
服务器端
客户端
下面我们来默认客户端的eclipse上的项目如何使用web service

我们现在已经知道web service的wsdl是http://localhost:6054/skss?wsdl
我们使用命令行执行cxf的命令,如下图所示:
_
执行完命令以后会在目录下创建一个文件夹结构以及一堆java代码。
_
我们看到,上图所示的文件夹就是cxf帮我们创建的。
下面我们将上述的所有java文件及文件夹结构复制到我们的eclipse的workspace中
_
复制的目的地,是eclipse上的另一个项目,我们称它为client项目。
_
然后我们在这个client项目上利用testNG生成一个测试类。
_
_
测试类的代码如下:

package com.dental;

import org.testng.annotations.Test;

public class SkssTest {
  @Test
  public void f() {
      //web service的具体stub
      Skss s1 = new Skss();
      //stub的实例化
      SlashInterface sim = s1.getSlashImplementPort();
      //执行web service方法
      int iresult = sim.add(999, 100);
      
      System.out.println("result is:"+iresult);
  }
}

我们执行这个testNG的测试类的测试方法f()
_
_
我们的client项目正确的调用了server端的web service
另外,eclipse的console本身,实际上对于不同项目有不同的窗体:
_
_

也就是这样,我们发布webservice,

目录
相关文章
|
2月前
|
Java 关系型数据库 应用服务中间件
JAVA Web项目开发eclipse工具包配置(第一天)
JAVA Web项目开发eclipse工具包配置(第一天)
|
2月前
|
存储 缓存 算法
关于 Service Worker 和 Web 应用对应关系的讨论
关于 Service Worker 和 Web 应用对应关系的讨论
18 0
|
3月前
|
Java API Apache
Apache CXF生成WebService的客户端
Apache CXF生成WebService的客户端
|
3月前
|
XML 网络架构 数据格式
Ruby 教程 之 Ruby Web Service 应用 - SOAP4R 2
Ruby Web Service 应用 - SOAP4R
24 5
|
3月前
|
XML Linux 网络架构
Ruby 教程 之 Ruby Web Service 应用 - SOAP4R 1
Ruby Web Service 应用 - SOAP4R
23 3
|
5月前
|
关系型数据库 MySQL 应用服务中间件
Intellij IDEA 导入公司老web项目 从eclipse里
Intellij IDEA 导入公司老web项目 从eclipse里
44 0
|
5月前
|
设计模式 前端开发 Java
Spring Boot之Spring MVC的工作原理 以及使用eclipse开发Spring MVC的Web应用实战(附源码)
Spring Boot之Spring MVC的工作原理 以及使用eclipse开发Spring MVC的Web应用实战(附源码)
48 0
|
5月前
|
Java 数据库连接 Apache
SpringBoot整合CXF实现WebService
SpringBoot整合CXF实现WebService
134 0
|
4月前
|
Java Maven Android开发
在Eclipse里配置Maven插件
Maven是一款比较常用的Java开发拓展包,它相当于一个全自动jar包管理器,会导入用户开发时需要使用的相应jar包。使用Maven开发Java程序,可以极大提升开发者的开发效率。下面我就跟大家介绍一下如何在Eclipse里安装和配置Maven插件。
51 0
|
1月前
|
XML Java Maven
eclipse 、idea 安装activiti插件
eclipse 、idea 安装activiti插件

推荐镜像

更多