Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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
Java 当SoapAction丢失时,.NET2.0Web服务能否处理来自客户端的调用?_Java_.net_Web Services_Soap - Fatal编程技术网

Java 当SoapAction丢失时,.NET2.0Web服务能否处理来自客户端的调用?

Java 当SoapAction丢失时,.NET2.0Web服务能否处理来自客户端的调用?,java,.net,web-services,soap,Java,.net,Web Services,Soap,我们有一个.NET2.0Web服务(.ASMX文件)。Java客户机正在调用此web服务,它们没有传入SoapAction头 这导致我们的web服务失败,错误为:“服务器未识别HTTP标头SOAPAction:的值。” 我不可能说服负责调用Java客户机的开发团队包含SoapAction头 我这边有没有办法解决这个问题 当SoapAction丢失时,我可以防止.NET抛出此错误吗?我可以通过编程方式将调用定向到正确的WebMethod吗 类似于这个psuedo代码 if (Header.Soap

我们有一个.NET2.0Web服务(.ASMX文件)。Java客户机正在调用此web服务,它们没有传入SoapAction头

这导致我们的web服务失败,错误为:“服务器未识别HTTP标头SOAPAction:的值。”

我不可能说服负责调用Java客户机的开发团队包含SoapAction头

我这边有没有办法解决这个问题

当SoapAction丢失时,我可以防止.NET抛出此错误吗?我可以通过编程方式将调用定向到正确的WebMethod吗

类似于这个psuedo代码

if (Header.SoapAction == String.Empty) then MyWebMethod();

根据SOAP1.1规范,这是HTTP客户端所必需的

6.1 SOAP HTTP请求

虽然肥皂可能会用于 与各种HTTP的结合 请求方法,仅此绑定 在HTTP POST请求中定义SOAP (有关如何使用肥皂进行清洁,请参见第7节。) RPC和第6.3节,了解如何使用 HTTP扩展框架)

6.1.1 SOAPAction HTTP头字段

SOAPAction HTTP请求头 字段可用于指示 SOAP HTTP请求的目的。这个 值是标识意图的URI。 SOAP对应用程序没有任何限制 URI或的格式或特定性 这是可以解决的HTTP客户端 必须在以下情况下使用此标题字段: 发出SOAP HTTP请求。

来源

从快速的谷歌上看,这似乎是Java和Axis的一个常见问题,但是否需要它还有一些争论。这能帮助您说服Java开发人员他们需要实现头部吗

编辑:

WSDL文档中定义了
SoapAction
http头的正确URI

后藤

查找您正在调用的方法的wsdl:operation元素,它应该有一个子元素soap:operation,它有一个名为soapaction的属性,其中的URI是您应该使用的URI。在我测试的一个Web服务中,它看起来像是命名空间后跟/和方法名,如下所示

<wsdl:operation name="AddTwoNumbers">
  <soap:operation soapAction="http://mydomain.com/myservice/AddTwoNumbers" style="document"/>

根据SOAP1.1规范,这是HTTP客户端所必需的

6.1 SOAP HTTP请求

虽然肥皂可能会用于 与各种HTTP的结合 请求方法,仅此绑定 在HTTP POST请求中定义SOAP (有关如何使用肥皂进行清洁,请参见第7节。) RPC和第6.3节,了解如何使用 HTTP扩展框架)

6.1.1 SOAPAction HTTP头字段

SOAPAction HTTP请求头 字段可用于指示 SOAP HTTP请求的目的。这个 值是标识意图的URI。 SOAP对应用程序没有任何限制 URI或的格式或特定性 这是可以解决的HTTP客户端 必须在以下情况下使用此标题字段: 发出SOAP HTTP请求。

来源

从快速的谷歌上看,这似乎是Java和Axis的一个常见问题,但是否需要它还有一些争论。这能帮助您说服Java开发人员他们需要实现头部吗

编辑:

WSDL文档中定义了
SoapAction
http头的正确URI

后藤

查找您正在调用的方法的wsdl:operation元素,它应该有一个子元素soap:operation,它有一个名为soapaction的属性,其中的URI是您应该使用的URI。在我测试的一个Web服务中,它看起来像是命名空间后跟/和方法名,如下所示

<wsdl:operation name="AddTwoNumbers">
  <soap:operation soapAction="http://mydomain.com/myservice/AddTwoNumbers" style="document"/>


谢谢你的帮助,克里斯。同一文档说,“空字符串(“”)的头字段值表示SOAP消息的意图由HTTP请求URI提供。”他们发送的头确实有一个SoapAction字段,但它被设置为空字符串(“”)。那么,也许我刚刚给了他们错误的HTTP请求URI?现在他们要去。对于名为MyWebMethod的WebMethod,正确的HTTP请求URI是什么?我已经为您编辑了这篇文章。在您的例子中,HTTP请求URI指向ASMX文件,而不是方法,因此我假设您不能将其保留为空字符串。谢谢您的帮助,Chris。同一文档说,“空字符串(“”)的头字段值表示SOAP消息的意图由HTTP请求URI提供。”他们发送的头确实有一个SoapAction字段,但它被设置为空字符串(“”)。那么,也许我刚刚给了他们错误的HTTP请求URI?现在他们要去。对于名为MyWebMethod的WebMethod,正确的HTTP请求URI是什么?我已经为您编辑了这篇文章。在您的例子中,HTTP请求URI指向ASMX文件,而不是方法,因此我假设您不能将其保留为空字符串。