Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 反序列化时发生xstream转换异常_Java_Xstream - Fatal编程技术网

Java 反序列化时发生xstream转换异常

Java 反序列化时发生xstream转换异常,java,xstream,Java,Xstream,在使用xstream进行反序列化时,我遇到以下异常: com.thoughtworks.xstream.converters.ConversionException:com.config.service类型的元素服务未定义为com.config.service类型中的字段 --调试信息-- 类:com.config.ServiceNServiceConfigurations 所需类型:com.config.Service 路径:/root/services/service 我的XML是: <

在使用xstream进行反序列化时,我遇到以下异常:

com.thoughtworks.xstream.converters.ConversionException:com.config.service类型的元素服务未定义为com.config.service类型中的字段

--调试信息--

类:com.config.ServiceNServiceConfigurations

所需类型:com.config.Service

路径:/root/services/service

我的XML是:

<root>
    <services>
      <service>
        <Id>10</Id>
        <Name>CM</Name>
      </service>
      <service>
        <Id>11</Id>
        <Name>TM</Name>
      </service>
    </services>
    <serviceConfigurations>
      <serviceConfiguration>
        <Key>XYZ</Key>
        <Value>42</Value>
      </serviceConfiguration>
      <serviceConfiguration>
        <Key>ABC</Key>
        <Value>5</Value>
      </serviceConfiguration>
    </serviceConfigurations>
</root>
请告诉我哪里出了问题

谢谢,您应该删除addImplicitCollection配置,因为您的集合不是隐式的

XStream xstream = new XStream();
        xstream.alias("root", com.config.ServiceNServiceConfigurations.class);
        xstream.alias("service",com.config.Service.class);
        xstream.alias("serviceConfiguration",com.config.ServiceConfiguration.class);
        xstream.aliasField("Key", com.config.ServiceConfiguration.class, "key");
        xstream.aliasField("Value", com.config.ServiceConfiguration.class, "value");
如果它们是隐式的,您的xml将如下所示:

<root>
  <serviceConfiguration>
    <Key>XYZ</Key>
    <Value>42</Value>
  </serviceConfiguration>
  <serviceConfiguration>
    <Key>ABC</Key>
    <Value>5</Value>
  </serviceConfiguration>
  <service>
    <Id>10</Id>
    <Name>CM</Name>
  </service>
  <service>
    <Id>11</Id>
    <Name>TM</Name>
  </service>
</root>
XStream xstream = new XStream();
        xstream.alias("root", com.config.ServiceNServiceConfigurations.class);
        xstream.alias("service",com.config.Service.class);
        xstream.alias("serviceConfiguration",com.config.ServiceConfiguration.class);
        xstream.aliasField("Key", com.config.ServiceConfiguration.class, "key");
        xstream.aliasField("Value", com.config.ServiceConfiguration.class, "value");
<root>
  <serviceConfiguration>
    <Key>XYZ</Key>
    <Value>42</Value>
  </serviceConfiguration>
  <serviceConfiguration>
    <Key>ABC</Key>
    <Value>5</Value>
  </serviceConfiguration>
  <service>
    <Id>10</Id>
    <Name>CM</Name>
  </service>
  <service>
    <Id>11</Id>
    <Name>TM</Name>
  </service>
</root>