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

来源:互联网 发布:java开源框架有哪些 编辑:程序博客网 时间:2024/05/22 15:17

跟国外公司的测试过程已经基本完成了,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一致.

 

原创粉丝点击