我正在将在Weblogic 8.1环境中运行的EJB Webservice升级到Weblogic 10.3。根据weblogic文档,我将EJB bean类转换为普通的Java类,并向Java类添加了注释,以将其标识为Web服务。在构建了耳朵并部署到服务器之后,我可以看到我的webservice启动并运行。但是,当我触发一个请求(曾经在8.1中给我一个有效的响应)到新的10.3 webservice时,我得到'Failed to get Operation Name'错误。我的输入请求是这样的。
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://mycomputer.com:7101/WebServices/HelloService">
<soapenv:Header/>
<soapenv:Body>
<MyRequest soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<string xsi:type="xsd:string">Hello</string>
</MyRequest>
</soapenv:Body>
</soapenv:Envelope>
如您所见,MyRequest元素不是任何名称空间声明的一部分。 8.1 webservice将其标识为属于命名空间 - http://mycomputer.com:7101/WebServices/HelloService。但是,10.3 Web服务不能识别相同的内容。当我为MyRequest元素添加“tns:”前缀时,我从10.3 webservice获得了有效的响应。所以,我的问题是
感谢您的期待!