在本文中,我们将看到如何使用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开发微服务相关推荐

  1. forge开发_使用Forge,WildFly Swarm和Arquillian开发微服务

    forge开发 在这篇文章中,我们将看到如何使用WildFly Swarm和Forge开发微服务,以及如何使用Arquillian和Rest Assured对其进行测试. WildFly Swarm提 ...

  2. 使用.NET Core+Docker 开发微服务

    .NET Core发布很久了,因为近几年主要使用java,所以还没使用过.NET Core,今天正好有一个c#写的demo,需要做成服务,不想再转成java来实现,考虑使用.NET CORE来尝下鲜, ...

  3. 使用.NET Core 2.1,RabbitMQ,SignalR,EF Core 2.1和Angular 6开发微服务

    目录 介绍 单一软件 微服务架构 微服务设计与规划 示例应用程序 示例应用程序的微服务 微服务进程间通信 微服务与消息队列之间的消息传递 RabbitMQ消息代理 消息队列体系结构目标和决策 帐户管理 ...

  4. 使用华为云CSE开发微服务应用

    概述 CSE(Cloud Service Engine) Java SDK是华为推出的产品级微服务开发框架,已经在华为内部多个大型产品上得到了使用和验证.使用CSE Java SDK开发微服务,可以最 ...

  5. 为何现在响应式编程在业务开发微服务开发不普及

    为何现在响应式编程在业务开发微服务开发不普及 主要因为数据库 IO,不是 NIO. 不论是Java自带的Future框架,还是 Spring WebFlux,还是 Vert.x,他们都是一种非阻塞的基 ...

  6. 低代码平台--基于surging开发微服务编排流程引擎构思

    前言 京东优惠券 https://m.fenfaw.net/ 微服务对于各位并不陌生,在互联网浪潮下不是在学习微服务的路上,就是在使用改造的路上,每个人对于微服务都有自己理解,有用k8s 就说自己是微 ...

  7. 简明扼要的概述微服务设计原则,深入开发微服务,就从今天开始

    写在前面 领域驱动设计DDD (Domain Driven Design)提出了从业务设计到代码实现一致性的要求,不再对分析模型和实现模型进行区分.也就是说,从代码的结构中我们可以直接理解业务的设计, ...

  8. 用Spring Cloud Alibaba开发微服务会更香吗?

    关注DD,除了前沿消息,还有每周福利哦 Spring Cloud Alibaba致力于提供微服务开发的一站式解决方案,它是Spring Cloud组件被植入Alibaba元素之后的产物. 利用Spri ...

  9. java前后端分离框架,SpringCloud开发微服务平台

    JNPF.java版本采用全新的前后端分离架构模式.前后端分离已成为互联网项目开发的业界标准开发方式,通过 nginx+tomcat 等方式有效的进行解耦合,并且前后端分离会为以后的大型分布式架构.弹 ...

最新文章

  1. matlab simulink 求解连续微分系统 混沌系统
  2. R7-2 试试多线程 (10 分)
  3. SELinux深入理解
  4. Ubuntu下gcc多版本共存和版本切换
  5. python io密集型应用案例-Python中单线程、多线程和多进程的效率对比实验实例
  6. 【splay】hdu 4453 2012杭州赛区A题
  7. Visual Studio 2015年预览设置: 辅助安装程序说明
  8. Python读取一个文件并删除换行输出到另外一个文件中
  9. 理解数据类型与数学运算:摄氏温度与华氏温度的相互转换
  10. gitblit git SERVER window 安装配置 hook post-receive 自动部署
  11. 学成在线案例(完整代码)
  12. SSM框架整合详细过程
  13. 计算机安装系统后鼠标无法使用,电脑重装系统后鼠标键盘不能用怎么办,鼠标键盘不能用解决方法...
  14. 批量删除多个 Word 文件中的分节符
  15. 方维分享增加列表页图片alt title属性,提高转化率
  16. 单目slam LoopClosing之Sim3优化
  17. 四旋翼飞行器5——各类方案设计及参考
  18. 一个微信公众号sdk(封装的比较全面)
  19. 使用cocos2d-x实现一款类似《Flappy Bird》的游戏
  20. matlab 215卷积码,基于matlab的卷积码的分析与应用

热门文章

  1. Redis 再牛逼,也得设置密码
  2. Redis进阶之内存模型
  3. 神奇,教你用随机数打印hello world
  4. Oracle入门(四)之查询基本信息
  5. Boostrap技能点整理之【bootstrap简介】
  6. JS中对象创建的五中方式
  7. 以管理员身份运行IJ
  8. JavaScript(笔记)
  9. 3级调度 fpga_FPGA的软核、硬核、固核
  10. 第2步 安装git 配置git用户 git的安装和项目的建立