为缓存web服务SOAP头发送正确的XML
我创建了一个简单的头类:为缓存web服务SOAP头发送正确的XML,xml,web-services,soap,intersystems-cache,intersystems,Xml,Web Services,Soap,Intersystems Cache,Intersystems,我创建了一个简单的头类: Class Sample.Headers Extends %SOAP.Header { Parameter NAMESPACE = "http://tempuri.org"; Property UserName As %String; } 在web服务中,我确保在SOAPHEADERS参数中设置了正确的名称空间: Parameter SOAPHEADERS = "UserName:Sample.Headers"; 我使用SoapUI发送以下XML:
Class Sample.Headers Extends %SOAP.Header
{
Parameter NAMESPACE = "http://tempuri.org";
Property UserName As %String;
}
在web服务中,我确保在SOAPHEADERS
参数中设置了正确的名称空间:
Parameter SOAPHEADERS = "UserName:Sample.Headers";
我使用SoapUI发送以下XML:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org">
<soapenv:Header>
<tem:UserName>This is the header</tem:UserName>
</soapenv:Header>
<soapenv:Body>
<tem:Test>
<!--Optional:-->
<tem:argAge>10</tem:argAge>
</tem:Test>
</soapenv:Body>
</soapenv:Envelope>
这是标题
10
我得到以下错误:
错误#6254:应为标记,XML输入(这是标头)不在
用户名子项的正确格式(在第3行字符18处结束)
为了正确设置用户名,XML的正确格式是什么?请看下面的示例: 注意:Header元素的所有直接子元素都必须是命名空间限定的
在本例中,XML的格式似乎有点不同,将名称空间嵌套为头属性“Trans”(在他们的示例中)的属性。这可能有点牵强,但我确实看到您的请求没有像这样显式地设置名称空间。看看下面的示例: 注意:Header元素的所有直接子元素都必须是命名空间限定的 在本例中,XML的格式似乎有点不同,将名称空间嵌套为头属性“Trans”(在他们的示例中)的属性。这可能有点牵强,但我确实看到您的请求没有像这样显式设置名称空间。只需要更改:
Property UserName As %String;
到
只是需要改变:
Property UserName As %String;
到
我用名称空间尝试了他们的示例,但仍然得到了相同的结果。我用名称空间尝试了他们的示例,仍然得到了相同的结果。