2013-04-04 7 views
0

Привет я увидел XStream реализацию Google App Engine, однако я все еще получаюXStream и Google App Engine

«Невозможно построить [класс], поскольку оно не имеет никакой-арг-конструктор»

@Test 
public void testNoNoArgs() { 
    Car car = new Car(1, "Blue"); 
    XStream xstream = new XStreamGae(); 
    String s = xstream.toXML(car); 
    Car c = (Car) xstream.fromXML(s); 
} 

Полный трассировки стека здесь: http://pastebin.com/TGF6N17W

Связанная XStream зависимость в моем приложении, являются:

<dependency> 
     <groupId>com.thoughtworks.xstream</groupId> 
     <artifactId>xstream</artifactId> 
     <version>1.4.2</version> 
    </dependency> 
    <dependency> 
     <groupId>xpp3</groupId> 
     <artifactId>xpp3_min</artifactId> 
     <version>1.1.4c</version> 
    </dependency> 
    <!-- XStreamGae Dependencies --> 
    <dependency> 
     <groupId>net.sf.kxml</groupId> 
     <artifactId>kxml2-min</artifactId> 
     <version>2.3.0</version> 
    </dependency>  
    <dependency> 
     <groupId>xmlpull</groupId> 
     <artifactId>xmlpull</artifactId> 
     <version>1.1.3.1</version> 
    </dependency> 

XStreamGae класса можно найти здесь:

http://www.wappworks.com/2011/11/11/using-xstream-with-google-app-engine/

Есть работа вокруг, чтобы сделать эту работу вокруг работы?

+0

Кстати, версия App Engine я использую SDK версии 1.7.5 – 2013-04-04 05:15:52

ответ

1

Очевидно ваш класс Car не должен иметь конструктор без аргументов:

public Car(){} 
+0

Ях, но почему библиотека Google Gson может сериализовать без no-args. Я считаю, что это проблема, связанная с SecurityManager, где GAE SDK позволяет Gson с определенными привилегиями безопасности, в то время как другие механизмы маршаллинга, такие как XStream, не работают для этого? – 2013-04-04 17:55:05

+0

Afaik Gson также нуждается в конструкторе no-args: https://sites.google.com/site/gson/gson-user-guide. Btw, если у вас нет конструктора, то Java внутренне предоставляет конструктор no-args по умолчанию. –