Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.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
SOAP请求的SoapAction能否因.NET和JAVA之间的互操作性问题或网络/基础结构代理而改变_Java_.net_Soap_Proxy - Fatal编程技术网

SOAP请求的SoapAction能否因.NET和JAVA之间的互操作性问题或网络/基础结构代理而改变

SOAP请求的SoapAction能否因.NET和JAVA之间的互操作性问题或网络/基础结构代理而改变,java,.net,soap,proxy,Java,.net,Soap,Proxy,我有一个场景,.NET3.5WebClient正在执行SOAP请求 标题中发送的SoapAction是 <Host>:<Port>/NotOps/RFMP/portTypeEndPoint?SessionID=<token> :/NotOps/RFMP/portTypeEndPoint?SessionID= 但是在SOAP请求的接收端,即JAVA,在“?”字符之前有一个“/”正在接收 <Host>:<Port>/NotOps/RFM

我有一个场景,.NET3.5
WebClient
正在执行SOAP请求 标题中发送的
SoapAction

<Host>:<Port>/NotOps/RFMP/portTypeEndPoint?SessionID=<token>
:/NotOps/RFMP/portTypeEndPoint?SessionID=
但是在SOAP请求的接收端,即JAVA,在“?”字符之前有一个“/”正在接收

<Host>:<Port>/NotOps/RFMP/portTypeEndPoint/?SessionID=<token>
:/NotOps/RFMP/portTypeEndPoint/?SessionID=
网络代理是否可以更改soap请求的任何部分?(网络代理是指在企业内部用于访问Web或其他网络的代理)

使用Java服务的.NET3.5客户机之间是否仍然存在互操作性问题,如本文所述

.NET要求使用HTTP SOAPAction标头 标识调用服务的操作。网 要求SOAPAction标头的格式为服务 命名空间,后跟正斜杠,后跟 操作,或urn:Example/sayHello。但是请注意,SOAP::Lite 默认情况下,使用磅符号(#)分隔服务名称空间 从操作的名称。我们在一起的时候,这不是问题 使用SOAP::Lite调用Java服务,因为ApacheSOAP 完全忽略SOAPAction头

提到这一点 例3-19

除了可能导致这种行为之外,还有其他想法吗?


在这种情况下,提到附加正斜杠的错误是误导性的,因为错误是由于通信端点上缺乏权限造成的

正如您所说,这种行为可能是由代理重写引起的,但这会非常奇怪

尝试以下测试:

  • 从.NET代码调用一些mock(理想情况下是在与原样相同的机器上) 您的程序)并检查SoapAction

  • 从SoapUI调用java代码时使用的请求与从步骤1得到的请求完全相同。(同样理想的情况是来自同一台机器)

  • 如果它仍然添加/之前?这意味着您正在使用的技术正在为您改变这一点(我猜应该是java应用服务器)


    如果/不会出现,那么您必须调查您的网络并找到神奇的代理。

    在jakub.petr提供的答案旁边

    该错误提到了额外的正斜杠,是由于在通信端点上缺乏权限造成的

    请记住,即使是详细的错误也可能误导您尝试修复未损坏的东西

    所以