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

具有servlet的Camel未在quarkus中启动

丌官子安
2023-03-14

我正在尝试使用Apache camel和Quarkus启动我的应用程序,但它给我以下错误:

至少有一个bean与所需的类型和限定符匹配,但被标记为未使用,并在构建期间被删除:类bean org。阿帕奇。骆驼组成部分servlet。CamelHttpTransportServlet[类型=[类javax.servlet.http.HttpServlet,接口java.io.Serializable,类org.apache.camel.http.common.CamelServlet,接口javax.servlet.ServletConfig,接口org.apache.camel.http.common.HttpRegistryProvider,类org.apache.camel.component.servlet.CamelHttpTransportServlet,类javax.servlet.GenericServlet,接口javax.servlet.servlet],限定符=[@javax.enterprise.inject.Default(),@javax.enterprise.inject.Any()]所需类型:class org。阿帕奇。骆驼组成部分servlet。CamelHttpTransportServlet必需的限定符:[@javax.enterprise.inject.Default()]解决方案:-应用程序开发人员可以通过@Unremove注释消除误报-扩展可以通过构建项消除误报,例如使用UnremovableBeanBuildItem

我不确定我错过了什么:

application.properties
camel.context.name=aiv
quarkus.camel.servlet.url-patterns = /rest/*

pom.xml
 <dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-main</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-platform-http</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-log</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-timer</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-servlet</artifactId>
</dependency>


public class CamelRoute extends RouteBuilder {

  @Override
  public void configure() {
     restConfiguration()
            .component("servlet");
    ...
  }
}

请让我知道我做错了什么?

共有1个答案

漆雕原
2023-03-14

除非出于某种原因确实需要Servlet支持,否则您可以依赖驼峰quarkus平台http来处理驼峰REST DSL的http传输。

您的依赖关系可以简化为:

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-main</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-log</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-timer</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-rest</artifactId>
</dependency>

骆驼Quarkus文档中有更多信息:

https://camel.apache.org/camel-quarkus/latest/reference/extensions/platform-http.html

 类似资料:
  • 我有一个Camel-ReST路由,它使用Jackson将集合转换为JSON,但当集合中的对象包含LocalDate时,它会抛出一个错误(没有LocalDate,一切都很好)。 com.fasterxml.jackson.databind.exc.:默认不支持Java8日期/时间类型:添加模块"com.fasterxml.jackson.datatype: jackson-datatype-jsr3

  • 我添加了io。quarkus:quarkus骆驼核心到我的应用程序,但直接启动在本机映像中不起作用。如果我在JVM中运行quarkus,那么它可以工作。 Github中有一些项目(https://github.com/apache/camel-quarkus/tree/master/extensions/direct)这在某种程度上表明,未来有一个扩展计划,但它没有得到官方支持。 如何使其以最小的

  • Camel Quarkus 致力于将 280+ Camel 组件移植和打包为 Quarkus 扩展。 Camel 是一个基于规则的路由以及媒介引擎,它提供了一个基于 POJO 的企业集成模式的实现,开发者可以采用其强大且十分易用的 API(Java 领域特定语言)配置其路由或中介的规则,通过这种领域特定语言,可以在 IDE 中用简单的 Java 代码写出一个类型安全并具有一定智能的规则描述文件。

  • 我正在尝试将apache camel与Quarkus一起使用。之前,我使用Spring Boot框架开发camel集成。所以有很多问题我仍在试图弄清楚w.r.t.Quarkus框架。 关于:豆子 在Spring靴里我可以做这样的事 然后我可以使用DI将它注入到类中 问题: 我如何在Quarkus框架中做同样的事情?P. S. 谢谢,

  • 如果I并通过JBOss web接口进行部署,servlet将进行部署。 使用eclipse,JPA类已经部署,持久性的东西也已经设置,但是我没有从servlet中得到任何东西。 除了persistence.XML之外,我没有任何XML文件,只有如下所示的带注释的servlet:

  • 我正在使用 雄猫 9 日食版本: 2020-09 (4.17.0) Apache Maven 3.6.3 我开始编写一个servlet,它运行在Tomcat容器中。当我在Ecplise(在服务器上调试)中运行它时,我可以看到一些来自Tomcat的日志输出。喜欢 servlet运行良好,开始如下所示: 但我看不到调试行。 对于日志记录,我使用的是slf4j 1.7和log4j2。我有以下<code>