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,

目录
相关文章
|
4月前
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
|
1月前
【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
Web App取消公网访问后,只允许特定IP能访问Web App。需要写一下段PowerShell脚本,批量添加IP到Web App的允许访问IP列表里!
|
4月前
|
关系型数据库 MySQL Linux
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
|
4月前
|
Shell PHP Windows
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
|
4月前
|
Linux 应用服务中间件 网络安全
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
|
4月前
【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因
【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因
|
4月前
|
Linux Python
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
|
2月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
166 3
|
1月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
181 45
|
20天前
|
前端开发 安全 JavaScript
2025年,Web3开发学习路线全指南
本文提供了一条针对Dapp应用开发的学习路线,涵盖了Web3领域的重要技术栈,如区块链基础、以太坊技术、Solidity编程、智能合约开发及安全、web3.js和ethers.js库的使用、Truffle框架等。文章首先分析了国内区块链企业的技术需求,随后详细介绍了每个技术点的学习资源和方法,旨在帮助初学者系统地掌握Dapp开发所需的知识和技能。
2025年,Web3开发学习路线全指南

推荐镜像

更多