2016-05-09 7 views
0

JerseyでJava Webサービスを開発しようとしていますが、Tomcatサーバーは404エラーを返し続けます。ジャージーウェブサービス。 404エラーを取得する

いくつかの詳細:

  • Tomcatの8
  • 他のウェブサービスは、私はMavenの(WEB-INF/libディレクトリ内のすべての.jars)
  • を使用していない
  • を作業しているサーバが動作します
  • 編集:これはURLである必要があります。http://localhost:8080/webservice/hi

クラス:

package service; 

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

@Path("/hi") 
public class Service { 
@GET 
@Produces(MediaType.TEXT_PLAIN) 
public String hello(){ 
    return "hi"; 
} 

    @GET 
    @Produces(MediaType.TEXT_HTML) 
    public String sayHtmlHello() { 
    return "<html> " + "<title>" + "Hello Jersey" + "</title>" 
     + "<body><h1>" + "Hello Jersey" + "</body></h1>" + "</html> "; 
    } 
} 

のWeb.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
<display-name>FirstRestWebService</display-name> 
<servlet> 
    <display-name>Rest Servlet</display-name> 
    <servlet-name>RestServlet</servlet-name> 
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
    <init-param> 
     <param-name>jersey.config.server.provider.packages</param-name> 
     <param-value>service</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>RestServlet</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 
</web-app> 
+0

コンソールにスタックトレースがありますか? – Bajal

+0

Tomcatのログファイルをチェックしましたが、例外やその他のエラーのようなものはありません – Meixe

+0

どのようにエンドポイントを呼び出しますか?同じパスには2つの異なる応答タイプがあります。 curl -H "受け入れる:text/plain" http:// localhost:8080/hi "? –

答えて

0

は、私はあなたのコードに2つの曖昧さを参照してください。あなたのRESTメソッドは異なるパス(@Path)を持っていません。もう一つは、サーブレットマッピングにwebserviceがまったく含まれていないことです。したがって、の曖昧性が実装されていても、webserviceを期待どおりにマッピングに追加する必要があります。

関連する問題