我试图将一个小型公司(多模块)RESTEasy JAX-RS应用程序移植到Quarkus,但我遇到了下面的错误。对公司模块有很多依赖关系,但我无法控制,但我试图遵循Quarkus的上下文和依赖关系注入指南(https://quarkus.io/guides/cdi-reference)。
操作系统:Ubuntu 18.04(WSL)
命令:./mvnw clean install-dskiptests
[ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:1.9.2.Final:build (default) on project <REDACTED>: Failed to build quarkus application: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
[ERROR] [error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: Found 4 deployment problems:
...
[ERROR] [3] Unsatisfied dependency for type <REDACTED>.security.cryptography.CryptographyService and qualifiers [@Default]
[ERROR] - java member: <REDACTED>.request.handlers.ConfigurationFileDownloadHandler#cryptographyService
[ERROR] - declared on CLASS bean [types=[<REDACTED>.request.handlers.ConfigurationFileDownloadHandler, java.lang.Object], qualifiers=[@Default, @Any], target=<REDACTED>.request.handlers.ConfigurationFileDownloadHandler]
代码本身中的DI:
...
import <REDACTED>.security.cryptography.CryptographyService;
...
@ApplicationScoped
public class ConfigurationFileDownloadHandler {
...
@Inject
private CryptographyService cryptographyService;
...
依赖关系在子模块pom文件中声明(从下面的mvn dependency:tree
可见):
[INFO] +- <REDACTED>.security.cryptography:cryptography-service-api-jar:jar:1.5.1:compile
quarkus.index-dependency.cryptography.group-id=<REDACTED>.security.cryptography
quarkus.index-dependency.cryptography.artifact-id=cryptography-service-api-jar
感谢任何帮助。
我认为那些第三方企业类没有正确的注释可以被Quarkus CDI过程发现,这是对的吗?
是的,这应该是问题所在,如果cryptographyservice
中没有CDI注释,即使它被Jandex索引了,它也是不可注入的。
解决方案是创建一个生产者,在bean工厂中生成cryptographyservice
bean。
@Singleton
public class CryptographyServiceProducer {
@Produces
@ApplicationScoped
public CryptographyService cryptographyService() {
return new CryptographyService();
}
}
作为参考,这里有一些关于CDI bean producer的文档:https://quarkus.io/guides/CDI#q-ok-you-said-that-there-are-mouse-king-of-beans
我有下一个结构: > QUARKUS扩展'core',带有接口的某些接口和bean的某些容器: Quarkus扩展与SomeImpl bean的“实现”: quokus应用程序-'starter',它依赖于quokus扩展'实现'和jax rs控制器: 当我尝试启动应用程序时,我收到一个错误: 如何修复它?链接到项目https://github.com/flagmen/quarkus-test
我正在尝试运行批处理,但无法将batchservice注入其中。 BatchApplication.java LeaveAllocationJobConfiguration.java 我该如何解决这个问题?
错误:无法解析配置“:应用程序:Android雅各布代理”的所有依赖项。 找不到org.jacoco:org.jaco.agent:0.7.5.201505241946。在以下位置搜索:文件:/home/locationXXX/Android/Sdk/extras/m2repository/org/jacoco/org.jacoco.agent/0.7.5.201505241946/org.jac
我觉得我一定忽略了什么。 null Grunt@0.4.2应该匹配所有这些依赖项,但npm说它不匹配,安装失败。我是不是忽略了什么? 根据请求,我的package.json文件:
最近,我更新了Android Studio和 SDK。在重建我的应用程序项目时,我遇到以下错误... > < li> 哪里出错:配置项目时出现问题:app。 无法解析配置“:app:_debugCompile”的所有依赖项。找不到技术支持:appcompat-v7:23.0.0.在以下位置搜索:https://jcenter.bintray.com/com/android/support/appc
我能够将路径提供程序库添加到我的pubspec中。yaml文件,我在代码中使用了它的功能。当我试着飞跑时,我得到了一个渐变构建错误。 这是错误消息: 我的android/build。格拉德尔 我尝试的是: > 尝试降级和升级gradle插件。 尝试添加maven仓库 buildscript{repositories{maven{url'https://dl.google.com/dl/androi