在教程中,您将学习使用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服务。
这是我们将需要的项目所需的概述:
- - Web服务
- - jaxws服务器
- - 用于测试目的的SOAPUI
开始创建一个Maven项目:
添加一个新的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:
测试第一种方法提出请求并传递您的参数
<arg0>1</arg0>
<arg1>JARJAR</arg1>
结果:
在下一个方法上,该方法不采用任何参数:
食用此SOAP Web服务
创建一个新项目,然后将JAX依赖项添加到pom.xml文件
在我们继续之前,您需要安装此插件
从WSDL搜索生成Java代码
它将在软件包内生成Java类
添加一个新类,该课程将使用中间件消费您的Web服务
结果如下: