0

我在 JBoss 7 环境中做了一个 REST 服务。使用 javax.ws.rs.core.Application 并像指南建议的那样使用 @ApplicationPath 。

所以下面的 REST 服务的代码应该是正确的,路径也是:

@Path(value="/service") 
@ApplicationPath("/app")  

public class MioRESTserv extends Application {  


      @GET
       @Path(value="/echo/{message}")
       public String answer(@PathParam(value="message") String message) {
          return "Answer " + message;
       }

       @POST
       @Path(value="/ordering")
       @Consumes(value="application/json")
       @Produces(value="application/xml")
       public Output ordering(Input input) {
          Arrays.sort(input.getVector());
          return new Output(input.getVector());
       }
    }

第一个休息服务“回答”工作正常。但是当我尝试在以下 html 页面中使用 JQuery 测试 POST REST 服务“排序”时(像消费者一样使用)我有错误的响应(见下文):

$(document).ready(function() {
        $( "input[type=submit]" ).click(function(event) {   //$('#submit').click(function() {
            var string = $('#numbers').val();
            if (string.indexOf(',') != -1) {  alert("in " + string);

            $.post({  
                    url: "http://localhost:8090/PAX_IN_REST/app/service/sorting",
                    contentType: "application/json",
                    data: '{"vector" : [' + string + ']}',                  
                    success: function(data, textStatus, jqXHR) {

                    },
                    error: function(jqXHR, textStatus, errorThrown){
                        alert("errorThrown=" + errorThrown);
                    }
                }); 
            } else {
                alert('Bad format! Must be x,y,z');
            }
        });
});

路径是正确的。如果我测试“错误格式”,它也很好用。使用正确的输入(数字例如 1、3、6、7、2)“排序” RESTService ,带有type=POSTmethod=POST,通过警报回答是:404 The requested resource (/REST_IN_PAX/[object%20Object]) is not available

有谁能够帮我?谢谢

4

1 回答 1

0

你真的想要一个单独的文件来为你的@ApplicationPath注释:

/**
 * Let the container know that we have a JAX-RS application.
 */
@ApplicationPath("/app")
public class AppResources extends Application {

}

然后为您的资源创建一个单独的文件:

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

   @GET
   @Path(value="/echo/{message}")
   public String answer(@PathParam(value="message") String message) {
      return "Answer " + message;
   }

   @POST
   @Path(value="/ordering")
   @Consumes(value="application/json")
   @Produces(value="application/xml")
   public Output ordering(Input input) {
      Arrays.sort(input.getVector());
      return new Output(input.getVector());
   }
}

您可能想查看此链接以帮助您入门: http: //www.mastertheboss.com/resteasy/resteasy-tutorial

于 2013-08-01T17:00:09.360 回答