不能够添加{}在URI由轴-ADB提供

问题描述:

我有以下一块代码的,我需要在上面的例子中,执行不能够添加{}在URI由轴-ADB提供

URI uri = new URI("http://localhost:8080/rest/{data}");

该URI从Axis2的-ADB-1.5 .jar - org.apache.axis2.databinding.types.URI

我厌倦了使用axis2-adb-1.6.1.jar。我得到一个MalformedURIException指出“路径包含无效字符:{”。 我可以用一种变通方法,并修改URI,使其工作

URI uri = new URI("http://localhost:8080/rest/%7Bdata%7D");

不过,我找其中我不需要修改我的输入选项。 此外,任何人都可以回答我为什么轴缸有这个限制。我试图寻找解释,但找不到任何。

在几天前发现,它不是一个有效的方案来在URL中添加花括号。只能后正确的编码

http://axis.apache.org/axis2/java/core/api/org/apache/axis2/databinding/types/URI.html 状态 解析URI规范的根据在RFC 2396中描述的URI语法完成加入,并且由RFC 2732

两个RFC 2396和RFC 2732规定修正下面

其它字符被排除,因为网关和其他传输 剂已知有时修改这样的字符,或者它们是用作分隔符 。

unwise =“{”| “}”| “|” | “\”| “^”| “[”| “]”| “`”

与排除字符对应的数据必须转义才能在URI内正确表示 。