2016-07-22 5 views
1

この原因は何ですか?これは無数の原因による非常に矛盾したエラーのようです。ここで org.apache.catalina.loader.WebappClassLoaderBase.loadClassからのjava.lang.NullPointerException

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パターンに複数の値を試してみましたが、あるようですすべてはURIを変更されているIエラーを取得します。 「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> 
+0

最初の見た目からは、サーブレットやWebアプリケーションの設定に誤りがあるようですが、それ以上のことを知らずに言うのは難しいです。 'catalina.out'ログファイルを見て、スタックトレース全体を投稿してください。webappの' web.xml'ファイルも参考になります。 –

+0

私はあなたが提供する必要があると思う:根本的な原因の完全なスタックトレースは、Apache Tomcat/8.5.3のログで利用可能です。 –

+0

@RomainHippeauどのログファイルでも、スタックトレースの詳細を見つけることができませんでした。おそらくそれを可能にするためのいくつかの設定がありますが、私は最終的にそれなしで混乱することができました。 – user1958756

答えて

1
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) 

この特定のものは、<servlet-class><filter-class>又は<listener-class>として<xxx-class>を期待web.xmlエントリによって引き起こされる可能性があり、実際には存在しないか、または空です。

実際には<servlet>のエントリに<servlet-class>がありません。これは、以下のように<servlet-name>で指定された名前で登録したいサーブレットクラスのFQNを参照する必要があります。言っ

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

、それは実際にあなたが登録しようとしたJAX-RSサーブレットであれば、あなたの<init-param><param-name>も良い見ていません。 JAX-RSを学んでTomcatに統合するための正しいチュートリアル/リソースを読んでいると思いますか?周知のものがLars Vogelによって提供される。

+0

私は実際にそのチュートリアルをしばらく使用していました。結局私はそれを断念し、あなたが言ったようなことをすることによって混乱することができました。 – user1958756

関連する問題