Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
URL-JUnit测试中的Jersey 1.19 Grizzly 2.3.25和Umlaute不起作用,而浏览器访问不起作用_Url_Jersey_Grizzly - Fatal编程技术网

URL-JUnit测试中的Jersey 1.19 Grizzly 2.3.25和Umlaute不起作用,而浏览器访问不起作用

URL-JUnit测试中的Jersey 1.19 Grizzly 2.3.25和Umlaute不起作用,而浏览器访问不起作用,url,jersey,grizzly,Url,Jersey,Grizzly,在RESTFul Jersey解决方案中,我尝试接收包含德语Umlaut字符的URL,例如 http://localhost:8085/hello/hello/echo/ÄÖÜßööü 当我用浏览器输入这样的URL时,我会得到正确的结果。 当我使用JUnit测试进行测试时,它不起作用 org.junit.ComparisonFailure: expected:<[ÄÖÜßäöü]> but was:<[ÃÃÃÃäöü]> at org.junit.Asse

在RESTFul Jersey解决方案中,我尝试接收包含德语Umlaut字符的URL,例如

http://localhost:8085/hello/hello/echo/ÄÖÜßööü
当我用浏览器输入这样的URL时,我会得到正确的结果。 当我使用JUnit测试进行测试时,它不起作用

org.junit.ComparisonFailure: expected:<[ÄÖÜßäöü]> but was:<[ÃÃÃÃäöü]>
    at org.junit.Assert.assertEquals(Assert.java:115)
    at org.junit.Assert.assertEquals(Assert.java:144)
    at com.bitplan.rest.test.TestHello.testUmlaute(TestHello.java:43)
因此,Grizzly/Jersey似乎没有正确处理url

如何修复或解决此问题?

我发现:并尝试了不同的编码,如中建议的编码,但没有任何区别

我还设置了

server.getServerConfiguration().setDefaultQueryEncoding(Charsets.UTF8_CHARSET);
如中所述,但仍然没有运气

JUnit测试

@测试
public void testUmlaute()引发异常{
super.startServer();
URI=新的URI(“http://localhost:8085/hello/hello/echo/ÄÖÜßäöü");
System.out.println(uri.toASCIIString());
System.out.println(uri.toString());
WebResource wrs=Client.create().resource(uri);
String result=wrs.accept(“text/html;charset=utf-8”).get(String.class);
资产质量(“结果”);
}
“Hello/Echo”资源

package com.bitplan.hello.resources;
导入javax.ws.rs.GET;
导入javax.ws.rs.Path;
导入javax.ws.rs.PathParam;
导入javax.ws.rs.products;
导入javax.ws.rs.core.Context;
导入javax.ws.rs.core.Request;
导入javax.ws.rs.core.UriInfo;
@路径(“/hello”)
/**
*简单Hello资源
*@author wf
*
*/
公共类HelloResource{
@上下文
UriInfo-UriInfo;
@上下文
请求;
@得到
公共字符串getHello(){
回复“你好”;
}
@得到
@生成(“文本/html”)
@路径(“echo/{value}”)
公共字符串getEcho(@PathParam(“value”)字符串值){
System.out.println(request.getMethod()+“:”+uriInfo.getPath());
返回值;
}
}
maven依赖关系


1.19.1 
2.3.25
...
...
泽西岛
球衣束
${jersey.version}
泽西岛
泽西灰熊2
${jersey.version}
泽西岛
jersey-grizzly2-servlet
${jersey.version}
org.glassfish.grizzly
grizzly http服务器
${grizzly.version}
org.glassfish.grizzly
grizzly http servlet
${grizzly.version}
org.glassfish.grizzly
grizzly http
${grizzly.version}
玻璃鱼
javax.servlet
3
假如

如果您说它在同一台服务器上的浏览器上工作,这不意味着问题可能出在客户端吗?可能是这样。但是服务器应该能够处理url的编码版本和非编码版本。请你。共享完整的测试用例,这样我们就可以复制?您缺少什么?最好在github上有一个项目,检查它并运行/测试如果您说它可以在同一台服务器的浏览器上工作,这不意味着问题可能在客户端?可能是这样。但是服务器应该能够处理url的编码版本和非编码版本。请你。共享完整的测试用例,这样我们就可以复制?您缺少了什么?在github上有一个项目,检查它并运行/测试会很好
server.getServerConfiguration().setDefaultQueryEncoding(Charsets.UTF8_CHARSET);