标签: xstream

Xstream no-args构造函数错误

当它试图创建'Transacao'的实例时,我收到以下错误

`Error: Cannot construct br.com.cbmp.ecommerce.resposta.Transacao as it does not have a no-args constructor : Cannot construct br.com.cbmp.ecommerce.resposta.Transacao as it does not have a no-args constructor `

---- Debugging information ----

message : Cannot construct br.com.cbmp.ecommerce.resposta.Transacao as it does not have a no-args constructor 

cause-exception : com.thoughtworks.xstream.converters.reflection.ObjectAccessException 

cause-message : Cannot construct br.com.cbmp.ecommerce.resposta.Transacao as it does not have a no-args constructor `

class : br.com.cbmp.ecommerce.resposta.Transacao 

required-type : br.com.cbmp.ecommerce.resposta.Transacao 

path : /transacao
Run Code Online (Sandbox Code Playgroud)

我知道XStream 1.3.1和JDK7存在一个错误,但我目前正在使用XStream 1.3.1和JDK6.任何想法为什么这个错误仍在发生?

谢谢

java constructor xstream

14
推荐指数
2
解决办法
1万
查看次数

Xstream:删除class属性

如何删除Xstream 中的class ="Something"属性.

我使用带有注释的Xstream

java attributes annotations xstream

13
推荐指数
2
解决办法
1万
查看次数

xstream CannotResolveClassException

我正在尝试使用xstream 1.4.2将xml转换为对象.它确实对我来说非常好,直到我将对象的类文件放在一个单独的包中,而不是主代码运行的位置.然后我得到一个CannotResolveClassException.我尝试过使用其他人推荐的setClassLoader方法,但这没有用.

Exception in thread "main" com.thoughtworks.xstream.mapper.CannotResolveClassException: result
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:56)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:55)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:79)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:74)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:45)
at com.thoughtworks.xstream.core.util.HierarchicalStreams.readClassType(HierarchicalStreams.java:29)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:133)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1052)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1036)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:912)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:903)
at main.readClass(main.java:48)
at main.main(main.java:28)
Run Code Online (Sandbox Code Playgroud)

答案: xstream期望xml结构相对于它(对象)所源自的包.因此必须使用xstream.alias才能为xml结构添加别名.

xstream.alias("something", Something.class);
Run Code Online (Sandbox Code Playgroud)

否则xstream将期望"Something"在默认包中,而不是它所属的包.

java xstream

12
推荐指数
1
解决办法
3万
查看次数

使用xstream自定义java集合的序列化

我有一个需要序列化为XML的对象,其中包含以下字段:

List<String> tags = new List<String>();
Run Code Online (Sandbox Code Playgroud)

XStream将它串行化(在一些别名之后),如下所示:

<tags>
  <string>tagOne</string>
  <string>tagTwo</string>
  <string>tagThree</string>
  <string>tagFour</string>
</tags>
Run Code Online (Sandbox Code Playgroud)

这是可以的,但是我希望能够将这些<string>元素重命名为<tag>.我无法从XStream网站上的别名文档中看到一种明显的方法.我错过了一些明显的东西吗

java collections xstream xml-serialization

11
推荐指数
2
解决办法
1万
查看次数

使用RESTlet,XStream注释似乎没有任何效果

在我的POJO中使用@XStreamOmitField似乎没有任何效果.带注释的字段仍然以xml或json表示形式公开.

@XStreamAlias("Pojo")
@Entity
public class Pojo {
    private String name;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long key;

    @XStreamOmitField
    private String hidden;

    public Pojo(String name, String hidden) {
        this.name = name;
        this.hidden = hidden;
    }
}
Run Code Online (Sandbox Code Playgroud)

并在ServerResource中

@Get
public Pojo test() {
    Pojo pj= new Pojo("hansi","hinter");
    return pj;
}
Run Code Online (Sandbox Code Playgroud)

抓住我

<com.myComp.ORMTest.Pojo>
  <name>hansi</name>
  <hidden>hinter</hidden>
</com.myComp.ORMTest.Pojo>
Run Code Online (Sandbox Code Playgroud)

任何关于注释被忽略的想法?

java xstream restlet

11
推荐指数
1
解决办法
2922
查看次数

List根元素的XStream别名

我希望能够根据列表中包含的对象类型对根列表元素进行别名.例如,这是我当前的输出:

<list>
<coin>Gold</coin>
<coin>Silver</coin>
<coin>Bronze</coin>
</list>
Run Code Online (Sandbox Code Playgroud)

这就是我想要的样子:

<coins>
<coin>Gold</coin>
<coin>Silver</coin>
<coin>Bronze</coin>
</coins>
Run Code Online (Sandbox Code Playgroud)

我可以在全球范围内通过说所有列表应该别名为硬币来做到这一点,但我有很多不同的列表,这是行不通的.关于如何做到这一点的任何想法?看起来它应该很简单,但当然,事实并非如此.

编辑:我应该指定,我正在尝试将对象序列化为xml.我使用Spring 3 MVC作为我的Web框架.

java xml alias list xstream

11
推荐指数
2
解决办法
3万
查看次数

如何使用XStream将对象列表转换为XML文档

如何使用XStream将对象列表转换为XML文档?

以及如何将其反序列化?

这是我的xml

<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person>  
  <fullname>Guilherme</fullname>
  <age>10</age>
  <address>address,address,address,address,</address>
</person>
<person>  
  <fullname>Guilherme</fullname>
  <age>10</age>
  <address>address,address,address,address,</address>
</person>
</persons>
Run Code Online (Sandbox Code Playgroud)

Person bean包含3个字段如何使用自定义转换器将其转换回Bean List?

java xml xstream

11
推荐指数
1
解决办法
5万
查看次数

Java XStream - 忽略XML中不存在的标记

我目前使用一段XML,如下所示

<Person>
    <Name>Frank Smith</Name>
    <Id>100023412</Id>
    <DOB>12/05/1954</DOB>
    <LasLogin>01/09/2010</LasLogin>
    <FavOS>Windows</FavOS>      // Wild card that may occasionally appear
</Person>
Run Code Online (Sandbox Code Playgroud)

我坚持使用的是,当使用XStream时,我需要能够忽略出现的某些标签(在'FavOS'上面的情况下)这些标签可能未知或将来发生变化.有没有办法忽略所有与当前实现的不匹配的标签?

(使用XStream 1.3.1)

java xstream

11
推荐指数
2
解决办法
7643
查看次数

使用XStream从XML文件生成Java类

我有很多xml文件,我想使用XStream来管理它们.是否可以使用XStream生成与我的xml文件对应的java类?

java class xstream

11
推荐指数
1
解决办法
2万
查看次数

Java XStream - 如何忽略某些元素

我有以下XML:

<xml version="1.0" encoding="UTF-8"?> 
<osm version="0.6" generator="CGImap 0.0.2">
 <bounds minlat="48.1400000" minlon="11.5400000" maxlat="48.1450000" maxlon="11.5430000"/>
 <node id="398692" lat="48.1452196" lon="11.5414971" user="Peter14" uid="13832" visible="true" version="18" changeset="10762013" timestamp="2012-02-22T18:59:41Z">
 </node>
 <node id="1956100" lat="48.1434822" lon="11.5487963" user="Peter14" uid="13832" visible="true" version="41" changeset="10762013" timestamp="2012-02-22T18:59:39Z">
  <tag k="crossing" v="traffic_signals"/>
  <tag k="highway" v="traffic_signals"/>
  <tag k="TMC:cid_58:tabcd_1:Class" v="Point"/>
  <tag k="TMC:cid_58:tabcd_1:Direction" v="positive"/>
  <tag k="TMC:cid_58:tabcd_1:LCLversion" v="9.00"/>
  <tag k="TMC:cid_58:tabcd_1:LocationCode" v="35356"/>
  <tag k="TMC:cid_58:tabcd_1:NextLocationCode" v="35357"/>
  <tag k="TMC:cid_58:tabcd_1:PrevLocationCode" v="35355"/>
 </node>
</osm>
Run Code Online (Sandbox Code Playgroud)

我只是想将元素(节点)映射到一个对象,但我遇到了问题:

  1. 它抱怨边界元素,因为我不想映射它们.
  2. 并非所有人nodes都有tags这样的问题.

java xstream

10
推荐指数
2
解决办法
2万
查看次数