前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SpringWS创建webservice服务端及客户端

SpringWS创建webservice服务端及客户端

作者头像
全栈程序员站长
发布于 2022-11-14 03:59:45
发布于 2022-11-14 03:59:45
2.2K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

springws项目地址

一、服务端

下图 主要目录结构,这个是完整的,下面,我们就来构建

1.1、创建spring initializr,下一步

1.2选中springweb,下一步,最后创建

1.3导入依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web-				services</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ws</groupId>
<artifactId>spring-ws-core</artifactId>
<version>2.4.2.RELEASE</version>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.18.Final</version>
</dependency>
<dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>xjc</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaDirectory>
${ 
project.basedir}/src/main/resources
</schemaDirectory>
<outputDirectory>
${ 
project.basedir}/src/main/java
</outputDirectory>
<clearOutputDir>
false
</clearOutputDir>
<encoding>utf-8</encoding>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xsd</include> </includes> </resource> </resources> </build> 

2.1生成下列基础文件

1、上面添加的依赖,就是配置自动生成下列文件的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>xjc</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaDirectory>
${ 
project.basedir}/src/main/resources
</schemaDirectory>
<outputDirectory>
${ 
project.basedir}/src/main/java
</outputDirectory>
<clearOutputDir>
false
</clearOutputDir>
<encoding>utf-8</encoding>
</configuration>
</plugin>

2、编写pim.xsd文件,此文件放于resources(springWS\src\main\resources\pim.xsd)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://tempuri.org/"
elementFormDefault="qualified">
<xs:element name="PlmWsMainRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="UserToken" type="xs:string"/>
<xs:element name="IFaceCode" type="xs:string"/>
<xs:element name="BatchNumber" type="xs:string"/>
<xs:element name="Data" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PlmWsMainResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="ResponseData" type="xs:string"/>
<xs:element name="ReturnCode" type="xs:string"/>
<xs:element name="ReturnMessage" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

3、运行install即可生成,运行10秒即可停止,不用等全部运行完

2、在包下springWS\src\main\java\org\tempuri生成的文件,其中PlmWsMainRequest和PlmWsMainResponse是用于传输请求的参数和返回的参数 (1)ObjectFactory.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//
// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.2.7 生成的
// 请访问 <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// 在重新编译源模式时, 对此文件的所有修改都将丢失。
// 生成时间: 2021.01.13 时间 05:01:43 PM CST 
//
package org.tempuri;
import javax.xml.bind.annotation.XmlRegistry;
/** * This object contains factory methods for each * Java content interface and Java element interface * generated in the org.tempuri package. * <p>An ObjectFactory allows you to programatically * construct new instances of the Java representation * for XML content. The Java representation of XML * content can consist of schema derived interfaces * and classes representing the binding of schema * type definitions, element declarations and model * groups. Factory methods for each of these are * provided in this class. * */
@XmlRegistry
public class ObjectFactory { 

/** * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.tempuri * */
public ObjectFactory() { 

}
/** * Create an instance of {@link PlmWsMainResponse } * */
public PlmWsMainResponse createPlmWsMainResponse() { 

return new PlmWsMainResponse();
}
/** * Create an instance of {@link PlmWsMainRequest } * */
public PlmWsMainRequest createPlmWsMainRequest() { 

return new PlmWsMainRequest();
}
}

(2)package-info.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//
// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.2.7 生成的
// 请访问 <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// 在重新编译源模式时, 对此文件的所有修改都将丢失。
// 生成时间: 2021.01.13 时间 05:01:43 PM CST 
//
@javax.xml.bind.annotation.XmlSchema(namespace = "http://tempuri.org/", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package org.tempuri;

(3)PlmWsMainRequest.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//
// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.2.7 生成的
// 请访问 <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// 在重新编译源模式时, 对此文件的所有修改都将丢失。
// 生成时间: 2021.01.13 时间 05:01:43 PM CST 
//
package org.tempuri;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
/** * <p>anonymous complex type的 Java 类。 * * <p>以下模式片段指定包含在此类中的预期内容。 * * <pre> * &lt;complexType> * &lt;complexContent> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;sequence> * &lt;element name="UserToken" type="{http://www.w3.org/2001/XMLSchema}string"/> * &lt;element name="IFaceCode" type="{http://www.w3.org/2001/XMLSchema}string"/> * &lt;element name="BatchNumber" type="{http://www.w3.org/2001/XMLSchema}string"/> * &lt;element name="Data" type="{http://www.w3.org/2001/XMLSchema}string"/> * &lt;/sequence> * &lt;/restriction> * &lt;/complexContent> * &lt;/complexType> * </pre> * * */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { 

"userToken",
"iFaceCode",
"batchNumber",
"data"
})
@XmlRootElement(name = "PlmWsMainRequest")
public class PlmWsMainRequest { 

@XmlElement(name = "UserToken", required = true)
protected String userToken;
@XmlElement(name = "IFaceCode", required = true)
protected String iFaceCode;
@XmlElement(name = "BatchNumber", required = true)
protected String batchNumber;
@XmlElement(name = "Data", required = true)
protected String data;
/** * 获取userToken属性的值。 * * @return * possible object is * {@link String } * */
public String getUserToken() { 

return userToken;
}
/** * 设置userToken属性的值。 * * @param value * allowed object is * {@link String } * */
public void setUserToken(String value) { 

this.userToken = value;
}
/** * 获取iFaceCode属性的值。 * * @return * possible object is * {@link String } * */
public String getIFaceCode() { 

return iFaceCode;
}
/** * 设置iFaceCode属性的值。 * * @param value * allowed object is * {@link String } * */
public void setIFaceCode(String value) { 

this.iFaceCode = value;
}
/** * 获取batchNumber属性的值。 * * @return * possible object is * {@link String } * */
public String getBatchNumber() { 

return batchNumber;
}
/** * 设置batchNumber属性的值。 * * @param value * allowed object is * {@link String } * */
public void setBatchNumber(String value) { 

this.batchNumber = value;
}
/** * 获取data属性的值。 * * @return * possible object is * {@link String } * */
public String getData() { 

return data;
}
/** * 设置data属性的值。 * * @param value * allowed object is * {@link String } * */
public void setData(String value) { 

this.data = value;
}
}

(4)PlmWsMainResponse.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//
// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.2.7 生成的
// 请访问 <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// 在重新编译源模式时, 对此文件的所有修改都将丢失。
// 生成时间: 2021.01.13 时间 05:01:43 PM CST 
//
package org.tempuri;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
/** * <p>anonymous complex type的 Java 类。 * * <p>以下模式片段指定包含在此类中的预期内容。 * * <pre> * &lt;complexType> * &lt;complexContent> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;sequence> * &lt;element name="ResponseData" type="{http://www.w3.org/2001/XMLSchema}string"/> * &lt;element name="ReturnCode" type="{http://www.w3.org/2001/XMLSchema}string"/> * &lt;element name="ReturnMessage" type="{http://www.w3.org/2001/XMLSchema}string"/> * &lt;/sequence> * &lt;/restriction> * &lt;/complexContent> * &lt;/complexType> * </pre> * * */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { 

"responseData",
"returnCode",
"returnMessage"
})
@XmlRootElement(name = "PlmWsMainResponse")
public class PlmWsMainResponse { 

@XmlElement(name = "ResponseData", required = true)
protected String responseData;
@XmlElement(name = "ReturnCode", required = true)
protected String returnCode;
@XmlElement(name = "ReturnMessage", required = true)
protected String returnMessage;
/** * 获取responseData属性的值。 * * @return * possible object is * {@link String } * */
public String getResponseData() { 

return responseData;
}
/** * 设置responseData属性的值。 * * @param value * allowed object is * {@link String } * */
public void setResponseData(String value) { 

this.responseData = value;
}
/** * 获取returnCode属性的值。 * * @return * possible object is * {@link String } * */
public String getReturnCode() { 

return returnCode;
}
/** * 设置returnCode属性的值。 * * @param value * allowed object is * {@link String } * */
public void setReturnCode(String value) { 

this.returnCode = value;
}
/** * 获取returnMessage属性的值。 * * @return * possible object is * {@link String } * */
public String getReturnMessage() { 

return returnMessage;
}
/** * 设置returnMessage属性的值。 * * @param value * allowed object is * {@link String } * */
public void setReturnMessage(String value) { 

this.returnMessage = value;
}
}

3、编写webservice(主要是业务逻辑) springWS\src\main\java\com\example\demo\webservice\PlmEndPoint.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.example.demo.webservice;
import org.tempuri.PlmWsMainResponse;
import org.tempuri.PlmWsMainRequest;
import org.springframework.ws.server.endpoint.annotation.Endpoint;
import org.springframework.ws.server.endpoint.annotation.PayloadRoot;
import org.springframework.ws.server.endpoint.annotation.RequestPayload;
import org.springframework.ws.server.endpoint.annotation.ResponsePayload;
import java.util.Date;
@Endpoint
public class PlmEndPoint { 

private static final String NAMESPACE_URI = "http://tempuri.org/";
@PayloadRoot(namespace = NAMESPACE_URI, localPart = "PlmWsMainRequest")
@ResponsePayload
public PlmWsMainResponse responsePimData(@RequestPayload PlmWsMainRequest request) { 

Date startTime = new Date();
PlmWsMainResponse response = new PlmWsMainResponse();
String batchNumber = request.getBatchNumber();
String iFaceCode = request.getIFaceCode();
String xmlInfo =request.getData();
System.out.println(xmlInfo);
response.setReturnCode("S");
response.setReturnMessage("sdfsdfsd");
response.setResponseData("111");
return response;
}
}

4、发布服务,注意:这个发布类最好与启动类同一目录下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.example.demo;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.ws.config.annotation.EnableWs;
import org.springframework.ws.config.annotation.WsConfigurerAdapter;
import org.springframework.ws.transport.http.MessageDispatcherServlet;
import org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition;
import org.springframework.xml.xsd.SimpleXsdSchema;
import org.springframework.xml.xsd.XsdSchema;
@EnableWs
@Configuration
public class WebServiceConfig extends WsConfigurerAdapter { 

@Bean
public ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext) { 

System.out.println("ServletRegistrationBean服务启动");
MessageDispatcherServlet servlet = new MessageDispatcherServlet();
servlet.setApplicationContext(applicationContext);
servlet.setTransformWsdlLocations(true);
return new ServletRegistrationBean(servlet,"/ws/wsapi/*");
}
@Bean(name = "plm")
public DefaultWsdl11Definition mesWsdl11Definition(XsdSchema mesSchema) { 

DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
wsdl11Definition.setPortTypeName("PlmPort");
wsdl11Definition.setLocationUri("/ws/wsapi/plm");
wsdl11Definition.setSchema(mesSchema);
return wsdl11Definition;
}
@Bean
public XsdSchema mesSchema() { 

return new SimpleXsdSchema(new ClassPathResource("pim.xsd"));
}
}

3、启动运行启动类

3.1访问http://localhost:8080/ws/wsapi/plm.wsdl,如下图所示,webservice服务端即发布完成

二、创建客户端

1、创建一个简单的spring initializr项目 2、打开服务端的服务(启动启动类) 3、指定文件夹,路径在项目下,运行命令 wsimport -keep http://localhost:8080/ws/wsapi/plm.wsdl(本人生成的路径:interfaceTest\src\main\java),运行命令后会在指定文件下生成客户端代码,如下图

4、创建一个main类,进行测试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.example.demo.mainTest;
import org.apache.logging.log4j.util.Base64Util;
import org.tempuri.*;
import static org.bouncycastle.crypto.tls.ConnectionEnd.client;
public class SpringWSTest { 

public static void main(String[] args) { 

PlmPortService plmPortService=new PlmPortService();
PlmPort plmPortSoap11 = plmPortService.getPlmPortSoap11();
PlmWsMainRequest plmWsMainRequest=new PlmWsMainRequest();
plmWsMainRequest.setBatchNumber("batchNum");
plmWsMainRequest.setData(Base64Util.encode("data"));
plmWsMainRequest.setIFaceCode("IFACE_CODE");
plmWsMainRequest.setUserToken("token");
PlmWsMainResponse pimWsMainResponse = plmPortSoap11.plmWsMain(plmWsMainRequest);
System.out.println(pimWsMainResponse.getReturnMessage());       
System.out.println(pimWsMainResponse.getReturnCode());       System.out.println(pimWsMainResponse.getReturnData());
}
}

运行该main方法,控制台如下显示时,yeah,表示成功,

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/186479.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月3日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
利用spring-ws 现实soap webservice服务
背景:有的系统还用soap协议来做webservice.特别要和他们对接的时候。我们需要实现一套。 今天说说,利用spring-ws来(部署,调用)webservcie,能很好的和主流架构(spring-mvc)结合。 参考资料,官方文档https://docs.spring.io/spring-ws/docs/3.0.0.RELEASE/reference/ spring-ws像spring-mvc一样,在集成到web项目时,前端有个servlet分发请求消息的概念。 这个servlet接受soap
技术蓝海
2018/04/26
6.1K0
利用spring-ws 现实soap webservice服务
Java小白翻身 - webservice教程2
来一个HelloWorld,SpringBoot发布WebService可简单啦。
剽悍一小兔
2021/07/20
8210
Java小白翻身 - webservice教程2
[亲测可用]springBoot调用对方webService接口的几种方法示例
平常我们开发调用接口一般会用到几种数据格式,比如有restful的,这个是目前最流行的,也是最简单开发的,还有一种就是webservice数据格式,这个应该是很久以前的一些项目是用的这种
小小鱼儿小小林
2020/06/29
14.7K0
cxf实现webservice_产品框架
WebService是一种跨编程语言和跨操作系统平台的远程调用技术。 跨编程语言和跨操作平台 就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。 远程调用 就是一台计算机a上的一个程序可以调用到另外一台计算机b上的一个对象的方法,譬如,银联提供给商场的pos刷卡系统,商场的POS机转账调用的转账方法的代码其实是跑在银行服务器上。再比如,amazon,天气预报系统,淘宝网,校内网,百度等把自己的系统服务以WebService服务的形式暴露出来,让第三方网站和程序可以调用这些服务功能,这样扩展了自己系统的市场占有率。 服务端:把公司内部系统的业务方法发布成WebService服务,供远程他人调用 客户端:调用别人发布的WebService服务 常见的远程调动技术: 1) Socket 套接字 TCP/IP UDP 2) WebService 3) http 调用 4) RMI( 远程方法调用 ) Hessian 框架(二进制RPC协议传输数据) WebService 的特点: 1) 跨平台,跨语言 2) W3C(万维网联盟)制定的标准 3) 可以穿透防火墙(因为 soap 协议是基于 HTTP 协议) SOAP 协议(简单对象访问协议Simple Object Access Protocol): WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议 SOAP协议 = HTTP协议 + XML数据格式 WSDL(Web Services Description Language)就是基于XML的语言,用于描述Web Service及其函数、参数和返回值。它是WebService客户端和服务器端都能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。
全栈程序员站长
2022/09/30
1.5K0
cxf实现webservice_产品框架
Spring Web Services 框架入门研究–发布服务
关于Spring Web Services框架 Spring web services(以下简称:Spring WS)框架是springframework东家SpringSource公司旗下的一个子项目。目前的版本是1.5M1,最新版本可以从spirngframework网站下载,项目地址是:http://www.springframework.org/node/567 由于怀着对spring框架的热爱,于是打算学习下这个框架。
全栈程序员站长
2022/07/05
1.1K0
SpringBoot WebService服务端&客户端使用教程
知识浅谈
2023/10/19
1.5K0
java JAXB 学习
JAXB(Java Architecture for XML Binding)是JDK的一部分,用于Object <-> XML的转换(有点类似于.NET中的XML序列化)。 1、创建XSD 可以使用
菩提树下的杨过
2018/01/24
1.5K0
java JAXB 学习
WebService: SpringBoot集成WebService实践二
该篇为上一篇的延伸,上一篇知识简单介绍了WebService 的使用,该篇会对代码中模块及功能进行详细介绍,以作对WebService 进一步的理解。
Freedom123
2024/03/29
6790
WebService: SpringBoot集成WebService实践二
WebService客户端几种实现方式
大家好,又见面了,我是你们的朋友全栈君。 文章目录 一、发布一个webservice服务(jdk原生) 1.编写服务接口 2.服务实现类 3.发布服务 4.浏览器查看是否发布成功 二、几种客户端调用方式 1、jdk原生调用(需要获取服务接口文件) 2、用import命令生成客户端代码 3、cxf类库 两种调用方式。 4、axis调用方式 5、httpClient调用方式。 6、SoapUI 7、其他 一、发布一个webservice服务(jdk原生) 1.编写服务接口 import java
全栈程序员站长
2022/09/14
2.9K0
WebService客户端几种实现方式
Java xml数据格式返回实现
前言:对于服务器后端开发,接口返回的数据格式一般要求都是json,但是也有使用xml格式
全栈程序员站长
2022/09/13
1.4K0
Java xml数据格式返回实现
webservice随记
用户1141560
2017/12/26
2.5K0
cxf webservice整合spring 原
     前端建模:CXF 提供了前端建模的概念,允许您使用不同的前端 API 来创建 Web 服务。API 允许您使用简单的工厂 Bean 并通过 JAX-WAS 实现来创建 Web 服务。它还允许您创建动态 Web 服务客户端。     工具支持:CXF 提供了用于在 Java Bean、Web 服务和 WSDL 之间进行转换的不同工具。它提供了对 Maven 和 Ant 集成的支持,并无缝地支持 Spring 集成。     RESTful 服务支持:CXF 支持代表性状态传输(Representational State Transfer,RESTful )服务的概念,并支持 Java 平台的 JAX-RS 实现。(本系列的第 2 部分将提供有关 RESTful 服务的更多信息。)     对不同传输和绑定的支持:CXF 支持不同种类的传输,从 XML 到逗号分隔值 (CSV)。除了支持 SOAP 和 HTTP 协议绑定之外,它还支持 Java Architecture for XML Binding (JAXB) 和 AEGIS 数据绑定。     对非 XML 绑定的支持:CXF 支持非 XML 绑定,例如 JavaScript Object Notation (JSON) 和 Common Object Request Broker Architecture (CORBA)。它还支持 Java 业务集成(Java Business Integration,JBI)体系架构和服务组件体系架构(Service Component Architecture,SCA)。     code first 或者 xml first  : 支持使用code first 或者 xml first 的方式来创建web服务。  一  借助 annotation 创建独立启动的web 服务。         准备: 新建工程 导入需要的jar 包:                      依赖的包:                             commons-logging-1.1.jar                             geronimo-activation_1.1_spec-1.0-M1.jar (or Sun's Activation jar)                             geronimo-annotation_1.0_spec-1.1.jar (JSR 250)                             geronimo-javamail_1.4_spec-1.0-M1.jar (or Sun's JavaMail jar)                             geronimo-servlet_2.5_spec-1.1-M1.jar (or Sun's Servlet jar)                             geronimo-ws-metadata_2.0_spec-1.1.1.jar (JSR 181)                             jaxb-api-2.1.jar                             jaxb-impl-2.1.6.jar                             jaxws-api-2.1.jar                             jetty-6.1.5.jar                             jetty-util-6.1.5.jar                             neethi-2.0.jar                             saaj-api-1.3.jar                             saaj-impl-1.3.jar                             stax-api-1.0.1.jar                             wsdl4j-1.6.1.jar                             wstx-asl-3.2.1.jar                             XmlSchema-1.2.jar                             xml-resolver-1.2.jar                         spring jar 包, 用来支持xml配置:                             aopalliance-1.0.jar          
尚浩宇
2018/08/17
8090
springboot与thrift集成实现服务端和客户端
我们这里用一个简单的小功能来演示一下如何使用springboot集成thrift 这个功能是,判断hdfs路径存在。 1、先解决依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependen
用户1225216
2018/03/05
6.4K1
揭秘:RESTEasy如何完美支持JAVA 微服务中的多种数据格式
本文获得stackify.com授权翻译发表,转载需要注明来自公众号EAWorld。
yuanyi928
2018/07/26
1.6K0
揭秘:RESTEasy如何完美支持JAVA 微服务中的多种数据格式
WebService入门初使用(一)创建WebService服务
本文所用WebService基于maven-ssm-cxf,此处暂时仅使用做记录,后期看心情适当整理相关知识点。
WindCoder
2018/09/20
2.5K0
WebService入门初使用(一)创建WebService服务
利用Spring MVC搭建REST Service
之前写过一篇 利用JAX-RS快速开发RESTful 服务 今天来看下spring-mvc框架如何实现类似的功能:  一、pom.xml 1 <?xml version="1.0" encodin
菩提树下的杨过
2018/01/24
1.1K0
利用Spring MVC搭建REST Service
WebService入门初使用(二)调用WebService服务
上一节记录完WebService的创建,鉴于篇幅所致,将调用部分单独拿到本节,所调用WebService服务基于上一章节内容。
WindCoder
2018/09/20
1.8K0
WebService入门初使用(二)调用WebService服务
Springboot集成Web service接口服务
  1)、XML+XSD:WebService采用HTTP协议传输数据,采用XML格式封装数据(即XML中说明调用远程服务对象的哪个方法,传递的参数是什么,以及服务对象的 返回结果是什么)。XML是WebService平台中表示数据的格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又是厂商无关 的。无关性是比技术优越性更重要的:软件厂商是不会选择一个由竞争对手所发明的技术的。
别先生
2020/12/01
3.1K0
Springboot集成Web service接口服务
Spring 4 MVC 视图解析器(XML JSON PDF等) 纯注解(带源码)【推荐】
原文地址:http://websystique.com/springmvc/spring-4-mvc-contentnegotiatingviewresolver-example/
明明如月学长
2021/08/27
2.4K0
Spring RestController[通俗易懂]
Spring RestController annotation is a convenience annotation that is itself annotated with @Controller and @ResponseBody. This annotation is applied to a class to mark it as a request handler.
全栈程序员站长
2022/07/02
2K0
Spring RestController[通俗易懂]
推荐阅读
相关推荐
利用spring-ws 现实soap webservice服务
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验