Java GWT JUnit测试-是否可以忽略同源策略
我正在尝试运行一个异步测试,需要向我的服务器发送一个请求,该服务器有一个REST-API。因此,我的问题是测试是在本地计算机上执行的,但这显然违反了同源策略,如果我尝试运行GWTtestCase,就会出现运行时错误:Java GWT JUnit测试-是否可以忽略同源策略,java,gwt,junit,same-origin-policy,gwt-super-dev-mode,Java,Gwt,Junit,Same Origin Policy,Gwt Super Dev Mode,我正在尝试运行一个异步测试,需要向我的服务器发送一个请求,该服务器有一个REST-API。因此,我的问题是测试是在本地计算机上执行的,但这显然违反了同源策略,如果我尝试运行GWTtestCase,就会出现运行时错误: com.google.gwt.http.client.RequestPermissionException: The URL http://<url-to-my-rest-service> is invalid or violates the same-origin s
com.google.gwt.http.client.RequestPermissionException: The URL http://<url-to-my-rest-service> is invalid or violates the same-origin security restriction
at com.google.gwt.http.client.RequestBuilder.doSend(RequestBuilder.java:394)
at com.google.gwt.http.client.RequestBuilder.send(RequestBuilder.java:242)
...
Maven然后将打印一个URL到终端,我应该将其输入浏览器以执行测试:
http://127.0.1.1:57818/<my-package>.JUnit/junit-standards.html?gwt.codesvr=127.0.1.1:40387
codeserver书签(上的开发模式)不工作,GWT无法检测到“可编译”的模块
问题:
那么我该如何使用SuperDevMode编译JUnit测试模块呢?您不能绕过SOP,但您可以使用servlet代理对远程服务器的请求(JUnitShell支持在gwt.xml文件中使用
声明的servlet)
如果您想在Chrome/Chrome中运行测试,您可以使用
-runStyle手册
或(注意:甚至还有一个),因为DevMode不再工作,正如您所指出的,您必须在prod模式下运行测试:-prod-userAgents safari
谢谢您的回答,我将尝试在外部浏览器中以生产模式手动运行测试。但是我还有两个问题:我认为测试在servlet上也应该失败,因为servlet仍然部署在本地主机上,但是REST-API服务器不是这样的,对吗?我不需要为prdouction模式手动运行codeserver吗?就像在SuperDevMode中的localhost上运行GWT代码一样?
http://127.0.1.1:57818/<my-package>.JUnit/junit-standards.html?gwt.codesvr=127.0.1.1:40387
mvn process-classes gwt:run-codeserver