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

forge开发

在这篇文章中,我们将看到如何使用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已启动,并且可以键入命令了:


之后,您需要安装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开发

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335348.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

zynq+linux固化程序,如何在 Zynq UltraScale+ MPSoC 上实现 Linux UIO 设计

原标题:如何在 Zynq UltraScale MPSoC 上实现 Linux UIO 设计简介作者: Alex He (何晔), 赛灵思高级嵌入式应用工程师这里的 UIO 即 Userspace I/O,本文中 UIO 泛指 UIO 设备和 UIO 驱动。它在 Linux kernel 的世界里比较小众&…

thinkpad笔记本散热风扇_极致的散热体验,ORICO 全铝DIY双风扇笔记本散热垫评测...

电脑的出现,极大的改变了人类的生活。娱乐、办公、游戏、电子竞技等等都需要用到电脑。而电脑也慢慢的在升级着。电脑的体积也由最开始的的占据几间屋子的庞大体积,到后来的台式机、台式一体机、电脑的体积慢慢的变的越来越小。而便携式笔记本电脑的出现…

Web产品的交互说明文档应该怎么写?

经常与开发同学聊天,他们说有一个详细的说明文档可以帮助他们更准确的进行工时评估,还可以帮助他们提高工作效率,减少多余的思考时间。因此在这里分享一些制作交互说明文档的经验。 我先说说说交互原型包含哪些部分? 版本说明及更…

linux类似360软件,linux下有什么类似鲁大师查看电脑配置的软

满意答案drqyna2017.05.26采纳率:40% 等级:11已帮助:5455人linux如何查看系统的硬件配置如何在linux系统下查看系统配置?在图形模式下我们可以很方便的利用Linux的图形工具,点击几下就可以查看到Linux系统的的硬件信…

thinkphp json_原创干货 | Thinkphp序列化合总

听说转发文章会给你带来好运最近Thinkphp几个版本都出了反序列化利用链,这里集结在一起,下面是复现文章,poc会放在最后01Thinkphp5.1.37环境搭建composercreate-project topthink/think5.1.37 v5.1.37poc演示截图调用链单步调试漏洞起点在\th…

笔记本能安装联想智能云教室吗_挑战Jupyter Notebook:云协作、云硬件,上云的Notebook编程环境...

对全世界的 Python 高手而言,Jupyter Notebook 是目前最流行的编程环境,但它也有一些令人难以忍受的缺点。为此,一个位于旧金山的小团队开发了一款名为 Deepnote 的笔记本工具,这是一种云协作、云硬件,上云的 Notebook…

在Linux中su和sudo区别,Linux中su和sudo的用法和区别

目录sudosudo:暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。缺点是每次执行超级用户权限都要在命令前加上 sudo ,优点是在当前终端再使用 sudo 不要再重复输入密码(只对…

python 提升效率_@Python 程序员,如何最大化提升编码效率?

作者 | Enoch CK 译者 | 刘畅 整理 | Jane 出品 | Python大本营 【导语】无论你是一位高级的AI工程师还是学生,你都会在工作或学习过程中需要用到 Python。自 1991 年首次发布后,Python 很快就成为了程序员和技术人员最喜欢的语言。作为一种拥有相对简单…

spring boot rabbitmq_Spring Boot+RabbitMQ 实现延迟消息实现完整版,实用!

本文同步Java知音社区,专注于Java作者:Sam哥哥http://blog.csdn.net/linsongbin1/article/details/80178122概述曾经去网易面试的时候,面试官问了我一个问题,说下完订单后,如果用户未支付,需要取消订单&…

jax-rs jax-ws_信守承诺:针对JAX-RS API的基于合同的测试

jax-rs jax-ws自从我们谈论测试和应用有效的TDD做法以来,已经有一段时间了,特别是与REST(ful) Web服务和API有关的做法。 但是,这个主题永远都不应忘记,特别是在每个人都在做微服务的世界中,无论…

怎么运行aws的示例程序_使Spring Boot应用程序在AWS上无服务器运行

怎么运行aws的示例程序在之前的 几篇 文章中,我描述了如何设置Spring Boot应用程序并在AWS Elastic Beanstalk上运行它。 尽管这是从物理服务器到云服务器的重要一步,但还有更好的可能! 走向无服务器 。 这意味着无需花费任何服务器费用&…

linux useradd 数字,详解linux useradd用户组合权限管理等

1,权限相关概念Rwx任何一个文件都应该由两部分组成,这两部分其实基于文件系统来组织,磁盘分区创建完成后,在高级格式化的时候,就把整个磁盘分区分成两部分,其中一部分是源数据,一部分是来放数据…

junit jndi_使用Spring创建用于JUnit测试的JNDI资源

junit jndi直到最近,我还使用静态方法来设置内存数据库(HSQLDB)。 我在JUnit测试的setUp / tearDown中调用了这些方法。 当我使用Spring时,这对我来说总是有点不自然,并且所有内容都应在其应用程序上下文中运行。 创建…

c语言程序经过编译以后生成的文件名的后缀为,c语言源文件经过编译后生成文件的后缀是什么...

c语言源文件经过编译后生成文件的后缀是什么c语言源文件经过编译后生成文件的后缀是“.obj”。C语言源程序经过编译程序编译之后,生成一个后缀为“.obj”的文件,最后由称为“连接程序”的软件,把此“.obj”文件与各种库函数连接在一起&#x…

通过PL/SQL developer工具访问远程的Oracle数据库_访问数据库_连接数据库_登录数据库

文章目录工具简介电脑没有安装 Oracle 数据库电脑安装了 Oracle 数据库工具简介 PL/SQL Developer 是 Oracle 数据库开发工具,PL/SQL Developer 功能很强大,可以做为集成调试器,有 SQL 窗口,命令窗口,对象浏览器和性能…

xgboost简单介绍_好文干货|全面理解项目中最主流的集成算法XGBoost 和 LightGBM

点击上方“智能与算法之路”,选择“星标”公众号第一时间获取价值内容本文主要介绍基于 Boosting 框架的主流集成算法,包括 XGBoost 和 LightGBM。送上完整的思维导图:XGBoostXGBoost 是大规模并行 boosting tree 的工具,它是目前…

本地 Windows 如何将 Web 工程部署到远程 Windows 主机上

文章目录第一步:先连接远程 Windows 主机:第二步:连接远程 Windows 主机后,把发布包复制到远程主机上并确定有关的目录第三步:删除远程主机的数据库中的旧数据第四步:创建新的用户和表空间第五步&#xff1…

r语言三维柱状图_R语言三维图的绘制

R语言在可视化方面的地位是毋庸置疑的,但是呢相对于MatalabR语言在三维图形的展示上存在一定的劣势。当然,作为大众的免费软件,指定不服,很多人为此也基于R语言开发了一些相应的三维图的绘制包,像rgl,gg3D&…

从事仪表专业学c语言有用吗,测控专业就业方向有哪些 就业前景比你想象中的好...

测控专业就业方向有哪些?这个专业的就业前景好不好?这些问题都是小伙伴们比较关心的问题,下面随小编一起来了解一下吧。主要就业方向1.智能仪器仪表方向,我觉得这个方向主要是从事仪器仪表,电子产品的软件,硬件研发,…

c语言 将url图片存到本地_python爬虫:爬取男生喜欢的图片

任务目标:1.抓取不同类型的图片2.编写一个GUI界面爬虫程序,打包成exe重新文件3.遇到的难点1.分析如何抓取不同类型的图片首先打开网站,可以看到有如下6个类型的菜单在这里插入图片描述点击不同菜单,发现URL显示如下大胸妹&#xf…