On 04/04/2013 03:32 PM, Jörg Schaible wrote:
Hi,
Xybrek wrote:
Hi I saw a XStream implementation for Google App Engine however I am
still getting a "Cannot construct [class] as it does no have a no-args
constructor:
@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);
}
The complete stack trace is here: http://pastebin.com/TGF6N17W
The XStream related dependency in my application are:
<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>
Xpp3 is superfluous, since ...
<!-- XStreamGae Dependencies -->
<dependency>
<groupId>net.sf.kxml</groupId>
<artifactId>kxml2-min</artifactId>
<version>2.3.0</version>
</dependency>
... XStreamGae uses kXML2 instead.
<dependency>
<groupId>xmlpull</groupId>
<artifactId>xmlpull</artifactId>
<version>1.1.3.1</version>
</dependency>
The XStreamGae class can be found here:
http://www.wappworks.com/2011/11/11/using-xstream-with-google-app-engine/
Is there a work-around to make this work-around work?
No. As you can see, XStreamGae is explicitly initialized in pure Java mode,
because the enhanced mode *cannot* work with GAE due to its security policy.
You will have to add a no-arg constructor.
- Jörg
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
So it means this will fail:
private Object newInstanceSkippingConstructor(final Class clazz) throws
SecurityException, NoSuchMethodException, IllegalArgumentException,
IllegalAccessException, InvocationTargetException {
Method newInstance =
ObjectInputStream.class.getDeclaredMethod("newInstance", Class.class,
Class.class);
newInstance.setAccessible(true);
return newInstance.invoke(null, clazz, Object.class);
}
?
-Xybrek
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email