私のJavaサーブレットは、パッケージに含まれているファイルが見つからないと文句を言っているようです(marktest)。Eclipse(Indigo)を使用してTomcat7を開発しています。
エラーは次のとおりです。
SEVERE: Error configuring application listener of class marktest.Config
Java.lang.ClassNotFoundException: marktest.Config
at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1678)
at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1523)
at org.Apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.Java:415)
at org.Apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.Java:397)
at org.Apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.Java:118)
at org.Apache.catalina.core.StandardContext.listenerStart(StandardContext.Java:4660)
at org.Apache.catalina.core.StandardContext$1.call(StandardContext.Java:5226)
at org.Apache.catalina.core.StandardContext$1.call(StandardContext.Java:5221)
at Java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.Java:334)
at Java.util.concurrent.FutureTask.run(FutureTask.Java:166)
at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1110)
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:603)
at Java.lang.Thread.run(Thread.Java:679)
これは、エラーで見つからないと言うServletContextListenerを実装するクラスを含むConfig.Javaです。
package marktest;
import Java.util.concurrent.ExecutorService;
import Java.util.concurrent.Executors;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class Config implements ServletContextListener
{
private ExecutorService executor;
@Override
public void contextInitialized(ServletContextEvent event)
{
System.out.println("########################## ServletContextListener started ###############################");
}
@Override
public void contextDestroyed(ServletContextEvent event) {
}
}
これがweb.xmlです
<?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" 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_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>de.vogella.jersey.first</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>com.Sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.Sun.jersey.config.property.packages</param-name>
<param-value>marktest</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<listener>
<listener-class>marktest.Config</listener-class>
</listener>
</web-app>
グーグルをたくさんした後でも、私はかなり困惑しています。よろしくお願いします。
マーク
----編集----
以下は完全なコンソールログです
10-Jan-2013 15:45:18 org.Apache.Tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.Eclipse.jst.jee.server:nlpServer' did not find a matching property.
10-Jan-2013 15:45:18 org.Apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
10-Jan-2013 15:45:18 org.Apache.catalina.startup.Catalina load
INFO: Initialization processed in 661 ms
10-Jan-2013 15:45:18 org.Apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
10-Jan-2013 15:45:18 org.Apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.21
########################## ServletContextListener started ###############################
10-Jan-2013 15:45:19 org.Apache.catalina.util.SessionIdGenerator createSecureRandom
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [1,052] milliseconds.
10-Jan-2013 15:45:19 com.Sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages:
marktest
10-Jan-2013 15:45:19 com.Sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Root resource classes found:
class marktest.hello
10-Jan-2013 15:45:19 com.Sun.jersey.api.core.ScanningResourceConfig init
INFO: No provider classes found.
10-Jan-2013 15:45:19 com.Sun.jersey.server.impl.application.WebApplicationImpl _initiate
INFO: Initiating Jersey application, version 'Jersey: 1.16 11/28/2012 02:09 PM'
10-Jan-2013 15:45:20 org.Apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class marktest.Config
Java.lang.ClassNotFoundException: marktest.Config
at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1678)
at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1523)
at org.Apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.Java:415)
at org.Apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.Java:397)
at org.Apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.Java:118)
at org.Apache.catalina.core.StandardContext.listenerStart(StandardContext.Java:4660)
at org.Apache.catalina.core.StandardContext$1.call(StandardContext.Java:5226)
at org.Apache.catalina.core.StandardContext$1.call(StandardContext.Java:5221)
at Java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.Java:334)
at Java.util.concurrent.FutureTask.run(FutureTask.Java:166)
at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1110)
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:603)
at Java.lang.Thread.run(Thread.Java:679)
10-Jan-2013 15:45:20 org.Apache.catalina.core.StandardContext listenerStart
SEVERE: Skipped installing application listeners due to previous error(s)
10-Jan-2013 15:45:20 org.Apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
10-Jan-2013 15:45:20 org.Apache.catalina.core.StandardContext startInternal
SEVERE: Context [] startup failed due to previous errors
10-Jan-2013 15:45:20 org.Apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
10-Jan-2013 15:45:20 org.Apache.catalina.startup.Catalina start
INFO: Server startup in 2538 ms
10-Jan-2013 15:45:24 org.Apache.catalina.core.StandardServer await
INFO: A valid shutdown command was received via the shutdown port. Stopping the Server instance.
10-Jan-2013 15:45:24 org.Apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-bio-8080"]
10-Jan-2013 15:45:25 org.Apache.catalina.core.StandardService stopInternal
INFO: Stopping service Catalina
10-Jan-2013 15:45:25 org.Apache.catalina.util.LifecycleBase stop
INFO: The stop() method was called on component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] after stop() had already been called. The second call will be ignored.
10-Jan-2013 15:45:25 org.Apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["http-bio-8080"]
10-Jan-2013 15:45:25 org.Apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["http-bio-8080"]
クラスがWTPによってTomcatに適切にデプロイされていないように見えます(再度クリーン/公開)。
この質問は閉じることができます。Eclipseにはバグがあり、変更を公開していないことが判明しました。
その結果、ライブラリソースが削除されるか、ビルドパスに移動されます。ビルドパス>ライブラリに欠落しているライブラリがないことを確認してください。
プロジェクトをクリーンアップし、Tomcatを再度実行します。これは役に立ちます。