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。
我有一个 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。