GWT-APACHE CXF header

GWT-APACHE CXF header

我有一个 CXF JAX-RS 服务和一个 GWT MVP4G 演示器。 我使用 RequestBuilder 调用该服务并将 Content-Type header 设置为 application/json.

但是在服务器端REST方法中不调用。

REST 代码是:

 class PlayerService{
 @POST
 @Path("addplayer")
 @Consumes({MediaType.APPLICATION_JSON})
 @Produces({MediaType.APPLICATION_JSON})
 String createOrSaveNewPLayerInfo(PlayerType playerType);
}

GWT 代码:

 RequestBuilder rq = new RequestBuilder(RequestBuilder.POST, url)
 rq.setHeader("Content-Type", "application/json");
 rq.sendRequest(s, new RequestCallback() {
 @Override
 public void onResponseReceived(Request request, Response response) {
 LOGGER.info(">" + response.getStatusCode() + "<");
 }
 @Override
 public void onError(Request request, Throwable exception) {
 LOGGER.info(">>" + exception.getMessage() + "<<");
 }
 });

我假设您的 GWT 应用程序 运行 在 Jetty 服务器上运行,而您的服务在 Tomcat 服务器上运行。在这种情况下,您有两个不同的端口:8080 和 8888。调用 8080 上的服务将被同源策略阻止。

要解决此问题,您可以关闭该策略(查找 CORS)。坏主意。

而是 运行 您的 GWT 应用程序在 Tomcat 中。在这种情况下,SOP 不会有任何问题。

要使用 GWT 设置外部服务器,请查看 here