2017-04-20 19 views
0

RESTサービスを作成してTomcatで起動しようとしました。私web.xmlは次のとおりです。TomcatにデプロイされたJerseyアプリケーションが返される404

<?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_3_0.xsd" 
    version="3.0"> 

    <display-name>TomcatRestExample</display-name> 

    <servlet> 
     <servlet-name>Jersey Web Application</servlet-name> 
     <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
     <init-param> 
       <param-name>jersey.config.server.provider.packages</param-name> 
       <param-value>de.continentale.testsvn.rest</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>Jersey Web Application</servlet-name> 
     <url-pattern>/maven/*</url-pattern> 
    </servlet-mapping> 

</web-app> 

私のクラスde.continentale.testsvn.rest.RestCallerは、次のようになります。私はhttp://localhost:8090/TomcatRestExample/maven/serviceにアクセスしようとしましたが、得た

package de.continentale.testsvn.rest; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

@Path("/service") 
public class RestCaller { 

    @GET 
    @Produces(MediaType.TEXT_XML) 
    public String convert() { 
     return "<text>hallo</text>"; 
    } 
} 

:Eclipseで

HTTP Status 404 - /TomcatRestExample/maven/service 

type Status report 

message /TomcatRestExample/maven/service 

description The requested resource is not available. 

Apache Tomcat/7.0.41 

Tomcatのコンソール出力:

INFORMATION: Reloading Context with name [/tomcat-rest-test] has started 
Apr 20, 2017 2:23:19 PM com.sun.jersey.api.core.servlet.WebAppResourceConfig init 
INFORMATION: Scanning for root resource and provider classes in the Web app resource paths: 
    /WEB-INF/lib 
    /WEB-INF/classes 
Apr 20, 2017 2:23:19 PM com.sun.jersey.api.core.ScanningResourceConfig logClasses 
INFORMATION: Root resource classes found: 
    class de.continentale.testsvn.rest.RestCaller 
Apr 20, 2017 2:23:19 PM com.sun.jersey.api.core.ScanningResourceConfig init 
INFORMATION: No provider classes found. 
Apr 20, 2017 2:23:19 PM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate 
INFORMATION: Initiating Jersey application, version 'Jersey: 1.19 02/11/2015 05:39 AM' 
Apr 20, 2017 2:23:20 PM org.apache.catalina.core.StandardContext reload 
INFORMATION: Reloading Context with name [/tomcat-rest-test] is completed 

私は何が不足しているか考えてみませんか?

+0

'localhost:8090/TomcatRestExample'は動作していますか? – aUserHimself

+0

コンソールに他のエラーがありますか?あなたの依存関係は何ですか? –

+0

@aUserHimself localhost:8090/TomcatRestExampleも同じ応答で応答します。この仕事をするにはどこかのhtmlページが必要ですか? –

答えて

2

あなたの状況が正しくないようです。アプリケーションはではなく/tomcat-rest-testに配置されています。後者は、管理ツールで使用される表示名です。 Tomcatは、コンテキスト名としてWARファイル名(.warなし)を使用します。

したがって、http://localhost:8090/tomcat-rest-test/maven/serviceを使用してリソースメソッドをヒットしてください。

1

/tomcat-rest-test/TomcatRestExampleではありません。最初のものを試してください:localhost:8090/tomcat-rest-test/maven/service

関連する問題