2016-10-13 15 views
1

私はWebサービスを初めて利用しています.RESTFul Webサービスを使用しようとしています。 ajaxからJavaのRESTFul Webサーバーにパラメータを渡そうとしています。ここ は、私がAjaxを使用したRESTFul Webサービス

index.htmlを

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Insert title here</title> 
</head> 
<body> 
    <div id="add"> 
     Add : <input type="text" name="name" id="name"> 
     <input type="submit" id="submitAdd"> 
    </div> 
</body> 
<script src="//ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.min.js"></script> 
<script> 

$(document).ready(function()) { 

$("#submitAdd").click(function() { 
    var data = { name : $("#name").val() }; 
    $.ajax({ 
     type: "GET", 
     url: "http://localhost:8080/Example/Rest/controller/return", 
     data: data, 
     dataType : "json", 
     success : function(rdata) { 

     } 
    }); 
}) 
}) 
</script> 
</html> 

Controller.java

package com.controller; 

import javax.ws.rs.Consumes; 
import javax.ws.rs.POST; 
import javax.ws.rs.Path; 
import javax.ws.rs.PathParam; 

@Path("/controller") 
public class Controller { 

    @GET 
    @Path("/return") 
    @Consumes("application/json") 
    public void add(String msg) { 
     System.out.println("name "+ msg); 
    } 
} 

の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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 
    <display-name>StockMonitor</display-name> 
    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 
<servlet> 
<servlet-name>Example</servlet-name> 
<servlet-class>com.sun.jersey.server.impl.container.servlet.ServletAdaptor</servlet-class> 
<init-param> 
     <param-name>com.sun.jersey.config.property.packages</param-name> 
     <param-value>com.controller</param-value> 
    </init-param> 
<load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
<servlet-name>Example</servlet-name> 
<url-pattern>/Rest/*</url-pattern> 
</servlet-mapping> 
</web-app> 

は、ファイル構造

でやったことあります10

私が使用してい瓶いる -

すべてのjar Jersey JAX-RS 2.0 RI bundlehttps://jersey.java.net/download.html

から、私はブラウザ でこれを入力すると、私はHTTP Status 404 Errorを取得します。 修正できません。誰もが間違いを教えてもらえますか?

答えて

0

/Restがあなたのコンテキストパスは、次にあなたは、コントローラは、あなたが持っていない/controller

/Example

  • マップされているがない任意のパスに登録

    1. あるので、あなたは404を取得していますあなたのコントローラが/controller URIパスにバインドされているので、/Restを解決するマッピング

      あなたのURLのための/Restを削除し、コントローラのパスマッピング

      @Path("/Rest/controller") 
      public class Controller { 
      
  • +0

    @Path( "/ Rest/Controller")を追加しても、このエラーは解決されません。瓶? – Newbie

    0

    /Restを追加し、web.xmlで

    <servlet-mapping> 
    <servlet-name>Example</servlet-name> 
    <url-pattern>/*</url-pattern> 
    </servlet-mapping> 
    

    OR

    をサーブレットマッピングを更新どちらかあなたの@を削除しますadd(String msg)メソッドのパス( "/ return")注釈。/Rest/controllerというパスから戻る必要があるのはあなたのリソースの終点です。

    package com.controller; 
    
    import javax.ws.rs.Consumes; 
    import javax.ws.rs.POST; 
    import javax.ws.rs.Path; 
    import javax.ws.rs.PathParam; 
    
    @Path("/controller") 
    @Consumes("application/json") 
    public class Controller { 
    
        @GET 
        public void add(String msg) { 
         System.out.println("name "+ msg); 
        } 
    } 
    
    関連する問題