Java SOAP WSDL错误配置SOAP而不是SOAPENV

Java SOAP WSDL错误配置SOAP而不是SOAPENV,java,web-services,jsp,soap,wsdl,Java,Web Services,Jsp,Soap,Wsdl,我有一个包含如下请求配置的wsdl文件: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bscs="http://www.website.com/ws/bscs"> <soapenv:Header/> <soapenv:Body> <bscs:MyAction> <param1>

我有一个包含如下请求配置的wsdl文件:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bscs="http://www.website.com/ws/bscs">
   <soapenv:Header/>
   <soapenv:Body>
      <bscs:MyAction>
         <param1>?</param1>
         <param2>?</param2>
      </bscs:MyAction>
   </soapenv:Body>
</soapenv:Envelope> 
但是,在检查Web服务器的日志时,soap请求以以下方式发送:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <ns3:MyAction xmlns:ns2="http://www.website.com/ws" xmlns:ns3="http://www.website.com/ws/bscs">
            <param1>20045454545</param1>
            <param2>45454</param2>
        </ns3:MyAction>
    </soap:Body>
</soap:Envelope>
你知道是什么导致了这个问题吗


场景是,我们在一个专用系统sys1中集成了SOAP服务。现在,我们希望该服务托管在另一个系统sys2中,并保持sys1和托管服务之间的通信正常

这两个都没有问题。第一个指定名称空间为soapenv:

这是正常的。名称空间是别名:它们被称为什么并不重要,重要的是它们如何定义,这在声明它们时提供的URL中有描述。在这种情况下,两个名称空间都由http://schemas.xmlsoap.org/soap/envelope/,所以它们是一样的


消息创建者将其名称空间称为什么完全取决于消息创建者。

您是在处理服务还是在处理客户端?请求失败了吗?是的,请求失败了,我请检查编辑,看看我在哪里工作。问题是服务的定义是在WSDL文件中以第一种格式完成的,而在我们调用的服务日志中,请求的格式是第二种格式。导致请求失败的原因。最好的猜测是,您用来解析SOAP消息的任何东西都不是正确的名称空间感知XML解析器。您是否编写了一个自定义解析器,该解析器希望消息具有soapenv名称空间?如果有,应该将其更改为处理任何名称空间。这两条消息在SOAP和XML术语中是相同的;接受一个而不接受另一个是不合法的。
<soapenv:Envelope xmlns:**soapenv**="http://...
<soap:Envelope xmlns:**soap=**"http://schemas...