我有一个有多个模块的Quarkus项目。
└── Parent module
└── Common module
└── child module
└── some module在公共模块中,我添加了以下依赖项(遵循本指南https://quarkus.io/guides/rest-client)。
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest-client</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest-client-jackson</artifactId>
</dependency>子模块将公共模块作为依赖项。
以及我在子模块中使用的代码片段。
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@ApplicationScoped
@RegisterRestClient(configKey = "URL")
@RegisterClientHeaders(AuthorizationHeaderFactory.class)
public interface MyRestClient {
@POST
@Path("/{id}")
FooResponse<FooResponseData> makeFooPayout(@PathParam("id") String accountId,
FooRequest<FooData> requestData);
}
}并从另一个ApplicationScoped类调用它:
FooResponse<FooResponseData> fooResponse = myRestClient.makeFooPayout(
payoutDTO.id(),
fooRequest
);在本机模式下运行应用程序时,它会抛出ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl。
我偶然发现了这个(https://quarkus.io/guides/logging#logging-adapters),以为它能帮我解决这个问题。
我遵循指南,尝试将日志记录从父模块中的rest客户机依赖项中排除出来。
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest-client</artifactId>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest-client-jackson</artifactId>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>并按照文档中的建议添加了一个适配器:
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>commons-logging-jboss-logging</artifactId>
</dependency>为甚麽不解决这个问题呢?我错过了什么吗?我是否应该排除子pom.xml中的日志依赖项?
发布于 2022-08-20 22:38:20
这个问题现在已经解决了,遵循本指南https://quarkus.io/guides/logging#logging-adapters。
在pom内部的公共模块中,我将其添加到所有依赖项中(不确定是否所有这些依赖项都需要排除commons-logging)。
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>并按照Quarkus文档中的建议添加了一个JBoss日志适配器。
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>commons-logging-jboss-logging</artifactId>
</dependency>https://stackoverflow.com/questions/73421095
复制相似问题