3

(Eclipse から) サーブレットを開始すると、次のエラーが表示されます: It's tomcat 7 and the servlet is REST.

INFO: validateJarFile(C:\beezer\WebServerWorkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\BeezerServer\WEB-INF\lib\geronimo-j2ee_1.4_spec-1.1.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
448 [localhost-startStop-1] ERROR org.apache.wink.server.internal.servlet.RestServlet - com.test.AddressBookApplication<br />
java.lang.ClassNotFoundException: com.test.AddressBookApplication<br />
    at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)<br/>
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)<br/>
    at java.lang.Class.forName0(Native Method)<br/>
    at java.lang.Class.forName(Class.java:169)<br/>
    at org.apache.wink.server.internal.servlet.RestServlet.getApplication(RestServlet.java:144)<br/>
    at org.apache.wink.server.internal.servlet.RestServlet.createRequestProcessor(RestServlet.java:105)<br/>
    at org.apache.wink.server.internal.servlet.RestServlet.init(RestServlet.java:81)<br/>
    at javax.servlet.GenericServlet.init(GenericServlet.java:160)<br/>
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)<br/>
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)<br/>
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)<br/>
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027)<br/>
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)<br/>
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)<br/>
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)<br/>
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)<br/>
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)<br/>
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)<br/>
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)<br/>
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)<br/>
    at java.lang.Thread.run(Thread.java:662)<br/>
Aug 30, 2012 7:49:41 PM org.apache.catalina.core.ApplicationContext log<br/>
INFO: Marking servlet JAX-RS Servlet as unavailable<br/>
Aug 30, 2012 7:49:41 PM org.apache.catalina.core.StandardContext loadOnStartup<br/>
SEVERE: Servlet /BeezerServer threw load() exception<br/>
javax.servlet.UnavailableException: com.test.AddressBookApplication<br/>
    at org.apache.wink.server.internal.servlet.RestServlet.init(RestServlet.java:91)<br/>
    at javax.servlet.GenericServlet.init(GenericServlet.java:160)<br/>
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)<br/>
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)<br/>
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)<br/>
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027)<br/>
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)<br/>
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)<br/>
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)<br/>
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)<br/>
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)<br/>
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)<br/>
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)<br/>
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)<br/>
    at java.lang.Thread.run(Thread.java:662)<br/>
Aug 30, 2012 7:49:41 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]

私のweb.XML:

<?xml version="1.0" encoding="UTF-8"?><br/> <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<br/> http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>BeezerServer</display-name>
    <servlet>
      <description>JAX-RS Tools Generated - Do not modify</description>
      <servlet-name>JAX-RS Servlet</servlet-name>
      <servlet-class>org.apache.wink.server.internal.servlet.RestServlet</servlet-class>
      <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.test.AddressBookApplication</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
      <servlet-name>JAX-RS Servlet</servlet-name>
      <url-pattern>/jaxrs/*</url-pattern>
    </servlet-mapping>

手がかりを持っている人はいますか?ありがとう!

4

2 に答える 2

0

まず、このクラスが実際に存在することを確認してください。クラス名とパッケージを確認してください。Web プロジェクトまたは依存プロジェクトに属していますか?

すべて問題なければ、プロジェクトを更新し、Project/Clean を実行してから、Tomcat をクリーンアップして再公開します。うまくいかない場合は、サーバーを再度作成します(つまり、Eclipseを意味します)。それでもうまくいかない場合はC:\beezer\WebServerWorkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\BeezerServer\WEB-INF\classes(パスはログから取得されます) に移動し、クラス ファイルが存在することを確認します。

頑張って、Eclipse 用の Tomcat のプラグインのバグと夜を戦って夜を過ごす人々のクラブへようこそ...

于 2012-08-30T17:25:28.203 に答える
0

C:\beezer\WebServerWorkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\BeezerServer\WEB-INF\lib\geronimo-j2ee_1.4_spec-1.1.jarこれには、AS 自体によって提供されるクラス Servlet.java が含まれています。Maven を使用している場合は、依存関係を提供済みとしてマークします ( <scope>provided</scope>)

ところで。jar はコンパイルにはまだ必要ですが、実行時には必要ありません。

編集: ああ、気付きましたが、ログには INFO しかありません。したがって、それは問題の原因ではなく、根本的な原因はClassNotFound元にあります。クラスがクラスパス上にあることを確認してください。

于 2012-08-30T19:40:17.323 に答える