.net客户端使用Axis2 Web服务

时间:2011-06-08 01:52:52

标签: c# xml web-services client axis2

我有一个.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>&lt;xml&gt;some xml data&lt;/xml&gt;</inputXML>

2)xml被编码,所以'&lt;'显示为"&lt;"

我不确定这是否是生成SOAP请求的方式,但我想删除<inputXML>标记,并且还要将xml显示为原样,而不必替换特殊字符。

这可能吗?是否与'Wrapping'/'UnWrapping'类型有关?

另外,我使用SoapUI来测试java web服务,它运行良好。但是,在请求标签中,我必须手动删除<inputXML>标记并提交以使其正常工作。请帮忙。

TIA

2 个答案:

答案 0 :(得分:1)

这是SOAP下的预期行为,inputXml变量在传递给Web服务方法时将被解码回原始字符串。

但是,这可能表明您的设计存在问题,您是否考虑构建要发送到Web服务的对象而不是xml数据? (因为此对象将透明地转换为xml以进行Web服务调用)。

答案 1 :(得分:0)

我发现问题不在于编码,但是当在axis2中查看消息时,它在java端被错误地解释。因此,它正在被正确解码。此外,inputxml现在正在正确处理。