gpt4 book ai didi

java - 使用 maven 依赖项从 maven 嵌入运行 Liberty 服务器

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:39:22 25 4
gpt4 key购买 nike

IBM Liberty 文档声称可以直接从代码使用 SPI 启动/停止/管理 Liberty 服务器。我想使用此类功能为我的 REST 服务创建集成测试。

引用原文: http://www.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/twlp_extend_embed.html?lang=en

我想创建集成测试:

1) 使用我自己的“server.xml”启动 Liberty 服务器。我想在这里提供特定的数据源和安全性。

2) 在 Liberty 服务器上部署 EAR 应用程序。

3) 在 Liberty 服务器上运行 REST-Assured 测试。

4) 取消部署应用程序并关闭 Liberty 服务器。

基本上我停留在第一阶段 - 我无法启动服务器,因为我收到“NoClassDefFoundError: com.ibm.ws.kernel.boot.EmbeddedServerImpl”异常。上面的链接描述了必须使用 Liberty 安装中的“ws-server.jar”,但是如何从 maven 依赖项中引用它呢?我想我可以从 IBM maven repo 'https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/maven/repository/ 中指定一些 Artifact ' 并使用它直接从我的单元测试中将 Liberty 作为嵌入式服务器启动,但我找不到该 Artifact 应该是什么。

因此,换句话说:IBM 存储库中包含 EmbeddedServerImpl 类的 Maven Artifact 是什么?包含该 Artifact 是否足够,或者自由嵌入需要更多 Artifact ?

最佳答案

您不能从 Maven 存储库引用它,因为它必须是您要启动的 Liberty 安装的一部分,因为它使用它的位置来计算它正在启动的内容。

我不久前写了一篇文章和示例,概述了针对 Liberty 编写功能/集成测试的不同技术,包括使用 JUnit 规则和嵌入式服务器启动和停止服务器:

https://developer.ibm.com/wasdev/docs/writing-functional-tests-liberty/

https://github.com/WASdev/sample.functionaltest

这是使用 Gradle 来完成构建脚本部分,所以我将启动 JAR 包含在:

fvtRuleCompile fileTree(dir: "${libertyRoot}/bin/tools", include: 'ws-server.jar')

同样可以在 Maven 构建环境中通过使用系统依赖来实现:

http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#System_Dependencies

关于java - 使用 maven 依赖项从 maven 嵌入运行 Liberty 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36012922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com