2013-06-26 5 views
0

Я сделал услугу REST в JBoss 7 env. используя javax.ws.rs.core. Применение и использование @ApplicationPath, как показывают подсказки.Rest easy JQUERY 404

Так следовать код Rest Service должен быть правильным и пути тоже:

@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()); 
     } 
    } 

Первая служба Rest «ответ» работает нормально. Но когда я пытаюсь, тестирование POST REST службы «порядок» с помощью JQuery в следующем HTML-страницы (используется как потребителя) я есть неправильно rensponse (см.ниже):

$(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=POST или method=POST, ответ от оповещения: 404 The requested resource (/REST_IN_PAX/[object%20Object]) is not available.

Может кто-нибудь мне помочь? Благодаря

+0

Я хотел бы добавить, что код, размещенный здесь, с оператором $ post и, таким образом, я не добавил свойство типа или метода, например, ins тиад, требуется инструкция $ .ajax. –

+0

О пути: Я использовал http: // localhost: 8090/PAX_IN_REST/app/service/ordering. Но проблема все еще сохраняется. –

+0

Настройка предупреждения (data.sortedVector.toString()); внутри функции success: function (data, textStatus, jqXHR) {}, но проблема не меняется. –

ответ

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