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

在Tomcat内部运行Camel应用程序时,我在CamelServlet实现上得到一个ClassCastException

景理
2023-03-14

我有一个使用servlet公开REST API的Camel应用程序。我用SpringBoot和Camel一起。在构建WAR之后,我可以使用java-jar运行它,它工作得很好。现在,当我将相同的WAR部署到Tomcat/WebApps中时,日志中会出现以下错误:

    java.lang.ClassCastException: class org.apache.camel.component.servlet.CamelHttpTransportServlet cannot be cast to class jakarta.servlet.Servlet (org.apache.camel.component.servlet.CamelHttpTransportServlet is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @4f2613d1; jakarta.servlet.Servlet is in unnamed module of loader java.net.URLClassLoader @520a3426)

这是我的web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

  <servlet>
    <servlet-name>CamelServlet</servlet-name>
    <servlet-class>
        org.apache.camel.component.servlet.CamelHttpTransportServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet>
    <servlet-name>SpringApplicationContext</servlet-name>
    <servlet-class>
        org.springframework.web.context.ContextLoaderServlet
    </servlet-class>
    <load-on-startup>2</load-on-startup>
  </servlet>
  <!-- Camel servlet mapping -->
  <servlet-mapping>
    <servlet-name>CamelServlet</servlet-name>
    <url-pattern>/srv/*</url-pattern>
  </servlet-mapping>
</web-app>

共有1个答案

苏宾鸿
2023-03-14

使用Tomcat9解决了这个问题

 类似资料:
  • 关于我以前的问题,我在Linux上运行企业级web应用程序时遇到了一些问题。在投资一台真正的登台机之前,我想我应该在Raspbery Pi上试一试,但现在,我们在一台真正的Debian计算机上运行该应用程序。 这个问题和我前面的问题一样。 起初,我认为这更像是tomcat的问题,但现在,我认为这是一个 <罢工> 覆盆子皮 Linux问题。 我将Spring bean定义为; 它给了我,说明没有定义

  • 我正在尝试在Tomcat上部署多个spring boot web应用程序。所有应用程序都有相同的application.properties。如何拆分在Tomcat上运行的不同应用程序的配置文件。

  • 在tomcat服务器中运行web应用程序时出现以下异常:1:严重:由于{myWorkspace}.metadata.plugins\org.eclipse.wst.server.core\tmp1\bin\keystore(系统找不到指定的文件),无法加载路径为{myWorkspace}.metadata.plugins\org.eclipse.wst.server.core\tmp1\bin/k

  • 问题内容: 我有使用Maven 3构建的gucie-servlet框架用Java编写的Web应用程序。当我将其部署在Tomcat 7容器上并尝试使用浏览器访问它时,Tomcat会回复404状态代码。这是来自Tomcat的日志: 异常表明我的应用程序的CLASSPATH中没有名为ru.hive.base.db.modules.DatabaseModule的类,但事实并非如此: JAR base-0.

  • 亲爱的, 我不熟悉Python和flask。在Spyder上运行以下代码时,会收到以下消息: 但是当我想跑步的时候http://127.0.0.1:5000/get_chain在《邮差》一书中,我得到以下信息: 我完全搞不懂为什么?这是我的代码: 第1部分-构建区块链

  • 我正在开发一个简单的应用程序,它使用泽西作为框架来构建API,并使用Jackson来处理JSON。 当我部署应用程序时,通过复制 我很确定这个问题不在java代码中,因为它曾经与*一起工作。jar包含方法。但我厌倦了这一点,希望将其迁移到maven体系结构。 我不会发布我的全部代码,但你可以在这里看到。 为了简化操作,下面列出了我使用的依赖项: jersey json v1.19 什么会导致此错误