gpt4 book ai didi

tomcat - 来自 org.apache.catalina.loader.WebappClassLoaderBase.loadClass 的 java.lang.NullPointerException

转载 作者:行者123 更新时间:2023-11-28 22:11:31 26 4
gpt4 key购买 nike

这是什么原因造成的?这似乎是一个非常常见的错误,原因有很多。

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error that prevented it from fulfilling this request.

exception

java.lang.NullPointerException
java.util.concurrent.ConcurrentHashMap.putVal(Unknown Source)
java.util.concurrent.ConcurrentHashMap.putIfAbsent(Unknown Source)
java.lang.ClassLoader.getClassLoadingLock(Unknown Source)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1149)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1116)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:510)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Unknown Source)
note The full stack trace of the root cause is available in the Apache Tomcat/8.5.3 logs.

这里是包括:

import java.util.Set;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Application;

添加 web.xml请注意:我已经为 url-pattern 尝试了多个值,它似乎所做的只是更改我收到错误的 URI。 'Hello' 是 java 源代码中的类名。

<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">

<servlet>
<servlet-name>HelloWorldTomcatService</servlet-name>
<init-param>
<param-name>com.package.from.java.file</param-name>
<param-value>Hello</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldTomcatService</servlet-name>
<url-pattern></url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

最佳答案

java.lang.NullPointerException
java.util.concurrent.ConcurrentHashMap.putVal(Unknown Source)
java.util.concurrent.ConcurrentHashMap.putIfAbsent(Unknown Source)
java.lang.ClassLoader.getClassLoadingLock(Unknown Source)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1149)

这个特定的可能是由 web.xml 引起的需要 <xxx-class> 的条目例如 <servlet-class> , <filter-class><listener-class> , 但它实际上不存在或为空。

事实上,您的 <servlet>条目缺少 <servlet-class> .它应该引用您要在 <servlet-name> 指定的名称下注册的 servlet 类的 FQN。如下所示。

<servlet>
<servlet-name>someServlet</servlet-name>
<servlet-class>com.example.SomeServlet</servlet-class>
</servlet>

就是说,您的 <init-param><param-name>如果它实际上是您尝试注册的 JAX-RS servlet,它看起来也不太好。您确定您正在阅读有关学习 JAX-RS 并将其集成到 Tomcat 的正确教程/资源吗? Lars Vogel 提供了一个众所周知的.

关于tomcat - 来自 org.apache.catalina.loader.WebappClassLoaderBase.loadClass 的 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38517714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com