2017-02-19 79 views
0

У меня есть приложение ember, пытающееся сделать запрос на отправку на мой Restful Java Web Service (JAX-RS). Однако запрос, похоже, не попадает в конечную точку. Вместо этого, веб-сервис Java посылает следующий ответ на уголек:Запрос на запрос Ember POST с ответом XML-джерси в JAX-RS

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<application xmlns="http://wadl.dev.java.net/2009/02"> 
    <doc xmlns:jersey="http://jersey.java.net/" jersey:generatedBy="Jersey: 1.10 11/02/2011 04:41 PM"/> 
    <grammars/> 
    <resources base="http://localhost:3002/"> 
     <resource path="users"> 
      <method id="postUser" name="POST"> 
       <response> 
        <representation mediaType="application/json"/> 
       </response> 
      </method> 
     </resource> 
    </resources> 
</application> 

Сам веб-сервис печатает следующее сообщение на консоль

Feb 19, 2017 2:48:06 PM com.sun.jersey.server.wadl.generators.WadlGeneratorJAXBGrammarGenerator attachTypes 
INFO: Couldn't find JAX-B element for class javax.ws.rs.core.Response 
Feb 19, 2017 2:48:06 PM com.sun.jersey.server.wadl.generators.WadlGeneratorJAXBGrammarGenerator attachTypes 
INFO: Couldn't find JAX-B element for class javax.ws.rs.core.Response 
Feb 19, 2017 2:48:06 PM com.sun.jersey.server.wadl.generators.WadlGeneratorJAXBGrammarGenerator attachTypes 
INFO: Couldn't find JAX-B element for class javax.ws.rs.core.Response 
Feb 19, 2017 2:48:06 PM com.sun.jersey.server.wadl.generators.WadlGeneratorJAXBGrammarGenerator attachTypes 
INFO: Couldn't find JAX-B element for class java.lang.String 
Feb 19, 2017 2:48:06 PM com.sun.jersey.server.wadl.generators.WadlGeneratorJAXBGrammarGenerator attachTypes 
INFO: Couldn't find JAX-B element for class javax.ws.rs.core.Response 

Конечная точка на JAX-RS выглядит следующим образом:

@Path("/users") 
public class Users { 
    @POST 
    @Produces("application/json") 
    public Response postUser() { 
     System.out.println("here"); 
     return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity("{}").header("Access-Control-Allow-Origin", "*").build(); 
    } 
} 

Джерси Версия: jax-rs-jersey-1.10

адаптер я n ember выглядит так:

export default DS.RESTAdapter.extend({ 
     host: 'http://localhost:3002', 
    }); 

Спасибо заранее!

Редактировать: При тестировании запроса в почтальоне все работает без проблем. Может быть, что-то делать с заголовками в ember?

ответ

0

Проблема заключалась в том, что клиент делал запрос OPTIONS, чтобы проверить, ответил ли сервер CORS, и JAX-RS не был настроен для CORS.

Решение должно было написать CORS filter, а затем обновить Jersy до 2.22. Поэтому изменение настройки HTTPServer на JdkHttpServerFactory