Tomcat无法加载Java Spark应用程序

nkhmeac6  于 2022-11-13  发布在  Java
关注(0)|答案(1)|浏览(243)

此问题与Apache Spark无关,而是与名为Spark的Java Web框架有关。


这是我们使用Spark Java的旧版应用程序。当我尝试在Tomcat中部署时,它抛出了找不到Sparkfilter的错误。我应该在哪里检查以解决此问题?
web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  3. <filter>
  4. <filter-name>SparkFilter</filter-name>
  5. <filter-class>spark.servlet.SparkFilter</filter-class>
  6. <init-param>
  7. <param-name>applicationClass</param-name>
  8. <param-value>com.example.resource.Spark</param-value>
  9. </init-param>
  10. </filter>
  11. <filter-mapping>
  12. <filter-name>SparkFilter</filter-name>
  13. <url-pattern>/*</url-pattern>
  14. </filter-mapping>
  15. <listener>
  16. <listener-class>
  17. com.example.utilities.PropertiesLoader
  18. </listener-class>
  19. </listener>
  20. </web-app>

Catalina 中出错

  1. java.lang.NullPointerException
  2. at com.example.resource.Spark.init(Spark.java:121)
  3. at spark.servlet.SparkFilter.init(SparkFilter.java:61)
  4. at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:285)
  5. at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:266)
  6. at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
  7. at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4657)
  8. at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5304)
  9. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
  10. at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
  11. at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
  12. at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
  13. at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1140)
  14. at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1875)
  15. at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
  16. at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  17. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  18. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  19. at java.lang.Thread.run(Thread.java:748)

我看到pom.xml包含Spark框架。我还应该检查什么来解决这个问题?

ve7v8dk2

ve7v8dk21#

我在Tomcat 10中启动sparkjava服务时也遇到了问题。 Catalina 显示

  1. org.apache.catalina.core.StandardContext.startInternal One or more Filters failed to start. Full details will be found in the appropriate container log file
  2. org.apache.catalina.core.StandardContext.startInternal Context [/some-service] startup failed due to previous errors

和localhost.2022.10.13.log显示的数据

  1. 13-Oct-2022 22:07:34.374 SCHWERWIEGEND [Catalina-utility-2] org.apache.catalina.core.StandardContext.filterStart Ausnahme beim Starten des Filters [SparkFilter]
  2. java.lang.ClassCastException: class spark.servlet.SparkFilter cannot be cast to class jakarta.servlet.Filter (spark.servlet.SparkFilter is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @41824418; jakarta.servlet.Filter is in unnamed module of loader java.net.URLClassLoader @4e1d422d)

我回到了Tomcat 9 ......这对我很有效。

相关问题