Java 带字符的SOAP畸形DurieException^

Java 带字符的SOAP畸形DurieException^,java,web-services,soap,soapui,Java,Web Services,Soap,Soapui,我必须使用SOAP调用一个Web服务,该服务的URL中碰巧有一个^。URL具有这种结构 String url = "http://sampleurl.com?type=entry&version=1.0&Sender.Service=SenderService&Interface=sampleurl/ABC^ServiceRequest"; 这给了我以下例外情况: com.sun.xml.messaging.saaj.util.JaxmURI$MalformedURIE

我必须使用SOAP调用一个Web服务,该服务的URL中碰巧有一个
^
。URL具有这种结构

String url = "http://sampleurl.com?type=entry&version=1.0&Sender.Service=SenderService&Interface=sampleurl/ABC^ServiceRequest";
这给了我以下例外情况:

com.sun.xml.messaging.saaj.util.JaxmURI$MalformedURIException: Query string contains invalid character:^
11:47:10,670 ERROR [STDERR]     at com.sun.xml.messaging.saaj.util.JaxmURI.initializePath(JaxmURI.java:690)
11:47:10,670 ERROR [STDERR]     at com.sun.xml.messaging.saaj.util.JaxmURI.initialize(JaxmURI.java:407)
11:47:10,670 ERROR [STDERR]     at com.sun.xml.messaging.saaj.util.JaxmURI.<init>(JaxmURI.java:194)
11:47:10,670 ERROR [STDERR]     at com.sun.xml.messaging.saaj.util.JaxmURI.<init>(JaxmURI.java:178)
11:47:10,670 ERROR [STDERR]     at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:254)
com.sun.xml.messaging.saaj.util.JaxmURI$MalformedUrieException:查询字符串包含无效字符:^
11:47:10670错误[STDERR]位于com.sun.xml.messaging.saaj.util.JaxmURI.initializePath(JaxmURI.java:690)
11:47:10670 com.sun.xml.messaging.saaj.util.JaxmURI.initialize(JaxmURI.java:407)上的错误[STDERR]
11:47:10670错误[STDERR]位于com.sun.xml.messaging.saaj.util.JaxmURI.(JaxmURI.java:194)
11:47:10670错误[STDERR]位于com.sun.xml.messaging.saaj.util.JaxmURI.(JaxmURI.java:178)
11:47:10670 com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:254)上的错误[STDERR]
让我困惑的是,即使我将
^
放在URL中,用SOAP UI调用webservice也会给我一个正确的答案

如果在我的应用程序或SOAP UI中将插入符号字符替换为
%5e
,Web服务将响应
“消息不完整。未找到发件人”
,因此似乎必须存在
^


你知道如何将
^
放在URL中而不给出例外吗

URL中不允许使用
^
字符,可能SOAPUI正在为您编码URL。我认为大小写表示对于URL转义字符很重要,请尝试使用大写
%5E
而不是小写
%5E

编辑:

我只是尝试在本地主机上配置一个TCP监视器,并从SOAPUI向
http://localhost:8091?type=entry&version=1.0&Sender.Service=SenderService&Interface=sampleurl/ABC^服务请求
。在TCP监视器中,我看到的是
%5E
而不是
^
,因此SOAPUI似乎正确地编码了URL,您可以在下图中看到:


希望这有帮助,

根据@JoelJonsson的说法,在URI中使用字符
^
实际上是不明智的。这里的问题是端点Web服务不是我们开发的,所以我现在必须坚持使用该url。我也尝试过这个方法,但它会引发另一个错误,我不知道转义^as大写现在是否有效。。。申请真让人头疼!无论如何,请大家投票表决,如果我解决了当前的问题,我会接受你的答案:)我尝试使用TCP监视器,似乎正确的aprox是%5E,请看一下我刚刚编辑的答案。感谢您的投票,祝您好运找到解决方案:)。