当前位置: 首页 > 知识库问答 >
问题:

无法生成quarkus应用程序:类型得依赖项不满足

丌官运诚
2023-03-14

我试图将一个小型公司(多模块)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

感谢任何帮助。

共有1个答案

宰父单弓
2023-03-14

我认为那些第三方企业类没有正确的注释可以被Quarkus CDI过程发现,这是对的吗?

是的,这应该是问题所在,如果cryptographyservice中没有CDI注释,即使它被Jandex索引了,它也是不可注入的。

解决方案是创建一个生产者,在bean工厂中生成cryptographyservicebean。

@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