JAX-WS肥皂Web服务
#java #webservice #soap #xml

在教程中,您将学习使用Maven

来发布和消费基于肥皂的Jaxws WebService

什么是肥皂

SOAP代表简单的对象访问协议,它是基于XML和HTTP的传输协议。它发送并接收请求和响应。

什么是WSDL

WSDL或Web服务描述语言是描述Web服务的XML符号。

什么是jaxws

JAXWS代表XML Web服务的Java API。它构建了使用XML通信的Web服务和客户端。

什么是肥皂

SOAPUI是一种API测试工具,用于基于Restful Web服务或基于HTTP的服务以及SOAP Web服务。

这是我们将需要的项目所需的概述:

  1. - Web服务
  2. - jaxws服务器
  3. - 用于测试目的的SOAPUI

开始创建一个Maven项目:

Image description

添加一个新的Java类,我们称其为Starwarscharater

现在添加另一个Java类,让我们称之为一个StarwarsService。

在此类中声明这两种方法:

  • getStarwarscharter():返回新的Starwarscharter
  • starwarscharacterlist():返回一个新的starwarscharacters

此类将作为我们的Web服务端点。为了做到这一点,用@webservice注释来注释它。为了向Web服务客户端展示其2种方法,我们将用@WebMethod注释来注释它们。

但是,在我们可以做任何事情之前

<!-- https://mvnrepository.com/artifact/com.sun.xml.ws/jaxws-ri -->
<dependency>
    <groupId>com.sun.xml.ws</groupId>
    <artifactId>jaxws-ri</artifactId>
    <version>4.0.0</version>
    <type>pom</type>
</dependency>

我们的班级应该看起来像这样:

现在让我们部署我们的Web服务

添加一个将发布Web服务端点的服务器类,以使用方法Publish()

接受传入请求

此方法将作为参数:HTTP服务器地址和WebService的实例。

它返回在地址参数中传递的端口上运行的HTTP服务器,并用于访问传递的Web服务作为实现者参数。

访问WSDL:

http://localhost:8081/StarwarsWS?wsdl

测试Web服务

链接下载soapui:

添加一个新的肥皂项目,如下 Image description

测试第一种方法提出请求并传递您的参数

<arg0>1</arg0>
<arg1>JARJAR</arg1>

结果:

Image description

在下一个方法上,该方法不采用任何参数:

Image description

食用此SOAP Web服务

创建一个新项目,然后将JAX依赖项添加到pom.xml文件

在我们继续之前,您需要安装此插件

Image description
现在单击项目名称,然后进行帮助>操作

Image description

从WSDL搜索生成Java代码

Image description

Image description

它将在软件包内生成Java类

Image description

添加一个新类,该课程将使用中间件消费您的Web服务

结果如下:

Image description