ICANN认证国际域名顶级注册机构
网站建设,域名注册,空间租用,软件销售,广告设计 域名注册,空间租用, 网站建设,东莞网页设计,域名注册,网站推广,网站开发,网页设计 网站推广,,百度推广,新浪推广,雅虎推广,网易推广 标志设计,画册设计,包装设计,VI策划,企业形象顾问 连邦软件加盟店,提供销遥行,管家婆,速达,用友ERP,诺顿等软件报价及销售 建站必读 腾达网络,上网帮助中心, 腾达为东莞等地,提供网站建设,网站推广,广告设计,软件销售等优质服务!
建站必读


 
 
当前位置:首页 -> 建站必读 -> JSP技术
关于SOAP反序列化的一点认识,正好解释了问题所在
看了一段关于反序列化的代码,原来在从xml代码到java代码的时候,有一个重新构造的过程,Apache Soap用的是org.apache.soap.encoding.soapenc.BeanSerializer来完成这个工作的.一个java 类是被看作一个bean来处理,重新构造时需要调用set方法,如果没有set方法,或者为private的时候,那么就等于构造了一个空的对象,所以造成了在客户端为空的现象.其实从服务端返回的不为空,只是本地重新构造时出了问题.下面的代码没有用apache默认得反序列化类,而是自己实现的,没有用到set.



public Bean unmarshall(String inScopeEncStyle, QName elementType,

  Node src, XMLJavaMappingRegistry xjmr, SOAPContext ctx)

  throws IllegalArgumentException

  {

    Element root = (Element)src;

    Element tempEl = DOMUtils.getFirstChildElement(root);

    samples.addressbook2.Phone target;



    try

    {

      target =

        (samples.addressbook2.Phone)samples.addressbook2.Phone.class.newInstance

        ();

    }

    catch (Exception e)

    {

      throw new IllegalArgumentException("Problem instantiating bean: "

        + e.getMessage());

    }



    while (tempEl != null)

    {

      Bean paramBean = xjmr.unmarshall(inScopeEncStyle,

      RPCConstants.Q_ELEM_PARAMETER,

      tempEl, ctx);

      Parameter param = (Parameter)paramBean.value;

      String tagName = tempEl.getTagName();





      if (tagName.equals("areaCode"))

      {

        target.areaCode_Elem = ((Integer)param.getValue()).intValue();

      }



      if (tagName.equals("exchange"))

      {

        target.exchange_Elem = (java.lang.String)param.getValue();

      }



      if (tagName.equals("number"))

      {

        target.number_Elem = (java.lang.String)param.getValue();

      }





      tempEl = DOMUtils.getNextSiblingElement(tempEl);

    }



    return new Bean(samples.addressbook2.Phone.class, target);

  }
 
 
本站关键词:
|东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设||东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设||东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设||东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设||东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设||东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设||东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设||东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设||东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设||东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设||东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|网页开发|域名注册|空间租用|东莞网站开发|东莞企业网站建设|
域名注册 | 虚拟主机 | 网站建设 | 网站推广 | 广告设计 | 帮助中心 | 软件中心 | 关于腾达
东莞市腾达信息工程有限公司      本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610   邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076 24小时服务热线:13712032014
© 2002~2005 腾达网络   版权所有