2016-11-22 7 views
1

私はtomcatでジャージーレストサービスを学んでいますが、index.htmlをレンダリングしようとしているときにジャージサービスを呼び出すようリクエストしています。ここでWebContentweb.xmlにウェルカムファイル設定で作業していないtomcatのジャストレストサービス

は私のweb.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> 
<display-name>rest</display-name> 
    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 


    <servlet> 
     <servlet-name>Rest With Jersey2</servlet-name> 
     <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
     <init-param> 
      <param-name>jersey.config.server.provider.packages</param-name> 
      <param-value>com.rest.jersey2</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Rest With Jersey2</servlet-name> 
     <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

であり、これは私が要求にindex.htmlの中に含まれているfirst.jsからアクセスしたい私のジャージサービス

package com.rest.jersey2; 

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

@Path("/hello") 
public class Test { 

    @GET 
    @Produces("application/json") 
    public Response defaultReverser() { 

     String result = "" ; 
     return Response.status(200).entity(result).build(); 
    } 


} 

です

$.ajax({ 
     url: "/hello", 
     type: "GET", 
     success: function(){ 
      alert("success"); 
     }, 
     error: function(){ 
      alert("error!"); 
     } 
    }); 

私は休憩アプリケーションをt omcatサーバーはindex.htmlをレンダリングしますが、ボタンをクリックしてurl/helloのajaxにjerseyサービスを呼び出すよう要求すると404が見つかりません。コンソールにエラーメッセージはなく、サーバーは正常に起動します。

私はそれを動作させるように案内してください!

編集:私は自分のレストサービスをテストすると、それはweb.xmlのurl mapping/rest/*で動作しません。しかし、私は/ *を使用する場合は動作しますが、この場合はウェルカムファイルを表示できません。

restサービスでindex.htmlをレンダリングしようとすると、このページはindex.htmlに含まれるfirst.jsを見つけることができませんが、first.jsをソースファイルと同じディレクトリを含む多くのディレクトリに配置しようとしました休憩サービスの

答えて

1

まず、あなたの休憩サービスを個別にテストすることができます。一旦それが働いているのを見たら、あなたはURLをチェックして、あなたのjavascriptコードが正確なパスを指しているかどうかを見ます。

「見つからない」となっているため、適切なサービスURIをターゲットにしていない可能性があります。あなたのサービスがrest/*の下にマップされているjqueryで "/ hello"を渡している可能性があります。 (だから/ rest /こんにちはあなたはURLです)。そうでない場合は、サービスの完全なURLを使用してチェックしてください(例:localhost:8080/rest/rest/hello)。 URLはhost:port/app/mappedurl/serviceurlになります。

このサンプル(https://github.com/NicolasFonte/rentals/blob/master/src/main/webapp/js/rentals.js)でこのジャージーサービス(https://github.com/NicolasFonte/rentals/blob/master/src/main/java/nicolas/trial/rest/RentalResource.java)が接続されていても問題はまだ解決していますそれ。

+0

こんにちはNicolas、私は自分のレストサービスをテストしたときに、web.xmlのurl mapping/rest/*で動作していません。しかし、私は/ *を使用する場合は動作しますが、この場合はウェルカムファイルを表示できません。ありがとう – Shruti

関連する問題