我有一个.net 2.0 C#客户端应用,它具有对 Axis2 Java Webservice的Web服务引用。 这个想法是将一些xml数据发送到webservice,因此可以将其解析并插入到数据库中。 WS方法接受“xsd:anytype”类型的单个参数。
Java Web服务:
public class JWS{
public Response AddData(Object inputXML) {
return Response;
}
}
C#客户端:
JWS client = new JWS();
object inputXML = "<xml>some xml data</xml>";
response = client.AddData(inputXML);
使用fiddler进行监控时,我看到了两个问题。
1)请求在实际的xml数据之前添加了一个额外的元素'<inputXML>'
。
<inputXML><xml>some xml data</xml></inputXML>
2)xml被编码,所以'&lt;'显示为"<"
我不确定这是否是生成SOAP请求的方式,但我想删除<inputXML>
标记,并且还要将xml显示为原样,而不必替换特殊字符。
这可能吗?是否与'Wrapping'/'UnWrapping'类型有关?
另外,我使用SoapUI来测试java web服务,它运行良好。但是,在请求标签中,我必须手动删除<inputXML>
标记并提交以使其正常工作。请帮忙。
TIA
答案 0 :(得分:1)
这是SOAP下的预期行为,inputXml变量在传递给Web服务方法时将被解码回原始字符串。
但是,这可能表明您的设计存在问题,您是否考虑构建要发送到Web服务的对象而不是xml数据? (因为此对象将透明地转换为xml以进行Web服务调用)。
答案 1 :(得分:0)
我发现问题不在于编码,但是当在axis2中查看消息时,它在java端被错误地解释。因此,它正在被正确解码。此外,inputxml现在正在正确处理。