java 跟.net webservice 互通问题(3)

本文介绍了解决不同Webservice之间的互通问题的方法,强调了命名空间一致性的重要性,并通过代码示例展示了如何使用.NET实现与Java Webservice的一致性,包括日志记录和SOAP包格式自定义。

跟国外公司的测试过程已经基本完成了,web service的互通问题也已经解决.

需要注意的是:

1,命名空间一定要一致

2,必须确保两种web service的soap 包格式相同.

下面用代码解释一下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Description;
using System.Web.Services.Protocols;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;
using NLog;

namespace TestService
{
/// <summary>
/// Summary description for Service1
/// </summary>
[WebService(Namespace = "http://www.test.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[SoapDocumentService(RoutingStyle = SoapServiceRoutingStyle.RequestElement, Use = SoapBindingUse.Literal)]
//[SoapRpcService(RoutingStyle = SoapServiceRoutingStyle.RequestElement, Use = SoapBindingUse.Literal)]
public class testService : System.Web.Services.WebService
{

[WebMethod]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Bare)]
[return: System.Xml.Serialization.XmlElementAttribute("outstr", Namespace = "http://www.test.com/")]
public string test([System.Xml.Serialization.XmlElementAttribute("input", Namespace = "http://www.test.com/")] string inputstr)
{
try
{
Logger log = LogManager.GetCurrentClassLogger();


#region 记录日志
if (inputstr!=null)
{
log.Info("inputstr=" +inputstr);
}
}
#endregion

return inputstr;
}
catch (Exception ex)
{

throw ex;
}

}
}

}

上边的代码是用nlog这个开源组件简单的记录了一个日志,我们可以定义webservice的命名空间和输入参数和返回参数的命名空间,来达到跟java一致.

黄色的部分代码是关键,这样做可以帮助你自定义soap 包格式,保持跟java一致.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值