使用Forge,WildFly Swarm和Arquillian开发微服务
在本文中,我们将看到如何使用WildFly Swarm和Forge开发微服务,以及如何使用Arquillian和Rest Assured对其进行测试。
WildFly Swarm提供了一种创新的方法来打包和运行Java EE应用程序,方法是将它们与足够的服务器运行时一起打包以“ java -jar”您的应用程序。
JBoss Forge是一个软件开发工具,可扩展您的Java IDE,并提供用于不同技术和解决方案的向导和扩展(附加组件)。
Arquillian是一个简化Java中间件集成测试的平台。 它处理了容器管理,部署和框架初始化的所有工作,因此您可以专注于编写测试(实际测试)的任务。
REST Assured将动态语言(例如Ruby和Groovy)中的REST服务的测试和验证的简便性带入了Java域。
http://downloads.jboss.org/forge/releases/3.4.0.Final/forge-distribution-3.4.0.Final-offline.zip或导航至http://forge.jboss.org/download并下载Eclipse,Netbeans或IntelliJ的插件。 对于此示例,我将使用CLI之一。
安装Forge并在PATH环境变量中提供它之后,就可以开始使用它了。
首先,转到要存储项目的目录并运行forge。 几秒钟后,您将看到Forge已启动,并且可以键入命令了:
之后,您需要安装wildfly-swarm插件 。 为此,只需在Forge shell上键入next命令:
> addon-install-from-git --url https://github.com/forge/wildfly-swarm-addon
然后将下载并安装最新的插件。 完成此设置步骤后,您可以通过调用以下命令开始创建微服务:
> project-new --top-level-package org.superbiz --named foo --type wildfly-swarm
此命令创建一个名为foo的新项目,其中准备了满足所有wildfly swarm要求的pom.xml 。 下一步是添加野生群片段。 片段是一种定义您希望在运行时能够使用的模块的方法。
> wildfly-swarm-add-fraction --fractions microprofile
在这种情况下,添加微轮廓部分。 这意味着在运行时CDI + JSON-P + JAXRS将可用.Addon还创建了一个JAX-RS端点作为示例,您可以通过运行以下两个命令来检查它:
> cd src/main/java/org/superbiz/rest/HelloWorldEndpoint.java
> ls
然后返回项目的根目录,让我们调用为微服务创建Arquilian测试的命令
> wildfly-swarm-new-test --target-package org.superbiz --named HelloWorldEndpointTest --as-client
在这种情况下,该测试称为HelloWorldEndpointTest,并且测试将以Arquillian as-client模式运行(这意味着该测试未部署在容器内,将在本地运行时运行)。 您可以使用以下两个命令检查生成的代码:
> cd src/test/java/org/superbiz
> cat HelloWorldEndpointTest.java
请注意,该测试尚未验证任何内容,但是由于我们使用的是as-client模式,因此该测试会在启动应用程序的位置注入URL。 让我们使用REST-assured添加一些检查。返回项目的根目录并通过调用next命令添加REST-assured依赖项:
> project-add-dependencies io.rest-assured:rest-assured:3.0.1:test
> cat pom.xml
最后,您可以在空测试中使用REST保证的方法来验证您的微服务端点是否有效地返回“来自WildFly Swam的问候!”。 。
package org.superbiz;import io.restassured.builder.RequestSpecBuilder;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.wildfly.swarm.arquillian.DefaultDeployment;import java.net.URISyntaxException;
import java.net.URL;import static io.restassured.RestAssured.given;
import static org.hamcrest.CoreMatchers.is;@RunWith(Arquillian.class)
@DefaultDeployment(testable = false, type = DefaultDeployment.Type.WAR)
public class HelloWorldEndpointTest {@ArquillianResourceprivate URL url;@Testpublic void should_start_service() throws URISyntaxException {RequestSpecBuilder requestSpecBuilder = new RequestSpecBuilder();requestSpecBuilder.setBaseUri(url.toURI());given(requestSpecBuilder.build()).when().get("hello").then().assertThat().body(is("Hello from WildFly Swarm!"));}
}
当您运行此测试时,幕后发生的事情是微服务在本地打包和部署。 当服务准备好接收传入的请求时,测试将向/ hello发送GET请求,并断言响应正文为“来自WildFly Swam的Hello!”。
您可以在https://youtu.be/9xb6GIZ1gjs看到运行
这是一个非常简单的示例,而这正是本文的目的。 只需向您展示如何使用Forge并运行一些命令,即可启动一个已开始运行其集成测试的项目。
翻译自: https://www.javacodegeeks.com/2017/01/develop-microservice-forge-wildfly-swarm-arquillian.html
使用Forge,WildFly Swarm和Arquillian开发微服务相关推荐
- forge开发_使用Forge,WildFly Swarm和Arquillian开发微服务
forge开发 在这篇文章中,我们将看到如何使用WildFly Swarm和Forge开发微服务,以及如何使用Arquillian和Rest Assured对其进行测试. WildFly Swarm提 ...
- 使用.NET Core+Docker 开发微服务
.NET Core发布很久了,因为近几年主要使用java,所以还没使用过.NET Core,今天正好有一个c#写的demo,需要做成服务,不想再转成java来实现,考虑使用.NET CORE来尝下鲜, ...
- 使用.NET Core 2.1,RabbitMQ,SignalR,EF Core 2.1和Angular 6开发微服务
目录 介绍 单一软件 微服务架构 微服务设计与规划 示例应用程序 示例应用程序的微服务 微服务进程间通信 微服务与消息队列之间的消息传递 RabbitMQ消息代理 消息队列体系结构目标和决策 帐户管理 ...
- 使用华为云CSE开发微服务应用
概述 CSE(Cloud Service Engine) Java SDK是华为推出的产品级微服务开发框架,已经在华为内部多个大型产品上得到了使用和验证.使用CSE Java SDK开发微服务,可以最 ...
- 为何现在响应式编程在业务开发微服务开发不普及
为何现在响应式编程在业务开发微服务开发不普及 主要因为数据库 IO,不是 NIO. 不论是Java自带的Future框架,还是 Spring WebFlux,还是 Vert.x,他们都是一种非阻塞的基 ...
- 低代码平台--基于surging开发微服务编排流程引擎构思
前言 京东优惠券 https://m.fenfaw.net/ 微服务对于各位并不陌生,在互联网浪潮下不是在学习微服务的路上,就是在使用改造的路上,每个人对于微服务都有自己理解,有用k8s 就说自己是微 ...
- 简明扼要的概述微服务设计原则,深入开发微服务,就从今天开始
写在前面 领域驱动设计DDD (Domain Driven Design)提出了从业务设计到代码实现一致性的要求,不再对分析模型和实现模型进行区分.也就是说,从代码的结构中我们可以直接理解业务的设计, ...
- 用Spring Cloud Alibaba开发微服务会更香吗?
关注DD,除了前沿消息,还有每周福利哦 Spring Cloud Alibaba致力于提供微服务开发的一站式解决方案,它是Spring Cloud组件被植入Alibaba元素之后的产物. 利用Spri ...
- java前后端分离框架,SpringCloud开发微服务平台
JNPF.java版本采用全新的前后端分离架构模式.前后端分离已成为互联网项目开发的业界标准开发方式,通过 nginx+tomcat 等方式有效的进行解耦合,并且前后端分离会为以后的大型分布式架构.弹 ...
最新文章
- matlab simulink 求解连续微分系统 混沌系统
- R7-2 试试多线程 (10 分)
- SELinux深入理解
- Ubuntu下gcc多版本共存和版本切换
- python io密集型应用案例-Python中单线程、多线程和多进程的效率对比实验实例
- 【splay】hdu 4453 2012杭州赛区A题
- Visual Studio 2015年预览设置: 辅助安装程序说明
- Python读取一个文件并删除换行输出到另外一个文件中
- 理解数据类型与数学运算:摄氏温度与华氏温度的相互转换
- gitblit git SERVER window 安装配置 hook post-receive 自动部署
- 学成在线案例(完整代码)
- SSM框架整合详细过程
- 计算机安装系统后鼠标无法使用,电脑重装系统后鼠标键盘不能用怎么办,鼠标键盘不能用解决方法...
- 批量删除多个 Word 文件中的分节符
- 方维分享增加列表页图片alt title属性,提高转化率
- 单目slam LoopClosing之Sim3优化
- 四旋翼飞行器5——各类方案设计及参考
- 一个微信公众号sdk(封装的比较全面)
- 使用cocos2d-x实现一款类似《Flappy Bird》的游戏
- matlab 215卷积码,基于matlab的卷积码的分析与应用