Tag: 序列化

使用Jackson XmlMapper进行序列化时添加DTD

当我序列化我的POJO时,一切都按预期工作。 我得到这样的东西: … 收件人(Google Search Appliance)似乎期望XML包含这样的DTD: … 我怎样才能做到这一点?

尝试编写对象时获取NotSerializableException

尝试序列化并将Lot对象发送到套接字。 得到错误: java.io.NotSerializableException: com.server.ClientServiceThread 为什么? public class ClientServiceThread extends Thread {… // form here called sendObj …} public class FlattenLot { public void sendObj(){ try { out = new ObjectOutputStream(oStream); out.writeObject(lot); // error out.flush(); out.close(); } catch (IOException ex) { ex.printStackTrace(); } } 批次类: import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.Date; import java.util.Calendar; public […]

我应该将变量保留为瞬态变量吗?

我一直在试验Apache Spark试图解决一些查询,如top-k,skyline等。 我创建了一个包装SparkConf和名为SparkContext的包装器。 这个类也实现了serializable,但由于SparkConf和JavaSparkContext不是可序列化的,所以类也不是。 我有一个类解决名为TopK的topK查询,该类实现了serializable,但该类还有一个不可序列化的SparkContext成员变量(由于上述原因)。 因此,每当我尝试从RDD中的.reduce()函数中执行TopK方法时,我都会收到exception。 我发现的解决方案是使SparkContext瞬态化。 我的问题是:我应该将SparkContext变量保持为瞬态还是我犯了一个大错误? SparkContext类: import java.io.Serializable; import org.apache.spark.SparkConf; import org.apache.spark.api.java.*; public class SparkContext implements Serializable { private final SparkConf sparConf; // this is not serializable private final JavaSparkContext sparkContext; // this is not either protected SparkContext(String appName, String master) { this.sparConf = new SparkConf(); this.sparConf.setAppName(appName); this.sparConf.setMaster(master); this.sparkContext = new JavaSparkContext(sparConf); […]

为什么双括号初始化要求SerialVersionUID?

public static List abc = new ArrayList(){{ //Asks for SerialVersionUID abc.add(5L); abc.add(7L); }}; public static List abc = new ArrayList();//Does not need SerialVersionUID static{ abc.add(5L); abc.add(7L); }

任务不能在Spark上序列化

我有一个转变: JavaRDD<Tuple2> mappedRdd = myRDD.values().map( new Function<Pageview, Tuple2>() { @Override public Tuple2 call(Pageview pageview) throws Exception { String key = pageview.getUrl().toString(); Long value = getDay(pageview.getTimestamp()); return new Tuple2(key, value); } }); Pageview是一种类型: Pageview.java 我将该类注册到Spark中,如下所示: Class[] c = new Class[1]; c[0] = Pageview.class; sparkConf.registerKryoClasses(c); 线程“main”中的exceptionorg.apache.spark.SparkException:在org.apache.spark.util.ClosureCleaner $ .clean的org.apache.spark.util.ClosureCleaner $ .ensureSerializable(ClosureCleaner.scala:166)中无法序列化的任务(ClosureCleaner.scala:158)org.apache.spark.SparkContext.clean(SparkContext.scala:1623)位于org.apache.spark的org.apache.spark.rdd.RDD.map(RDD.scala:286)。 api.java.JavaRDDLike $ class.map(JavaRDDLike.scala:89)位于org.apache.gora.tutorial.log.ExampleSpark的org.apache.spark.api.java.AbstractJavaRDDLike.map(JDJRDDLike.scala:46)。运行(ExampleSpark.java:100)at org.apache.gora.tutorial.log.ExampleSpark.main(ExampleSpark.java:53)引起:java.io.NotSerializableException:org.apache.gora.tutorial.log.ExampleSpark序列化stack: – 对象不可序列化(类:org.apache.gora.tutorial.log.ExampleSpark,值:org.apache.gora.tutorial.log.ExampleSpark@1a2b4497) – […]

如何将Java对象转换为C ++对象?

我的问题是这样的。 我已经序列化了存储在文件中的二进制Java对象。 我需要用C ++重构对象并进行进一步处理。 我想我可以使用Java反序列化Java对象,再次序列化为acsii文件,然后加载C ++代码。 另外,我知道可以使用JNI从C ++调用Java函数,但我不知道如何传递参数,即将对象返回给C ++。 但有更好的方法吗? 谢谢!

如何使用基于java.util.Map的类序列化Jackson

我有一个看起来像这样的课: @JsonFormat(shape=JsonFormat.Shape.OBJECT) public class MyMap implements Map { protected Map myMap = new HashMap(); protected String myProperty = “my property”; public String getMyProperty() { return myProperty; } public void setMyProperty(String myProperty) { this.myProperty = myProperty; } // // java.util.Map mathods implementations // … } 以及使用此代码的主要方法: MyMap map = new MyMap(); map.put(“str1”, “str2”); ObjectMapper mapper = […]

使用Groovy将bean序列化和反序列化为json

我已经通过groovy http://www.infoq.com/news/2014/04/groovy-2.3-json阅读了有关json的新闻。 所以我尝试使用本地方法(de)序列化包含日期的groovy bean。 但我有问题,使用JsonOutput.toJson(对象)和JsonObject.fromObject()与java.util.Date String jsonDat a= groovy.json.JsonOutput.toJson(contact) Contact reloadContact = new Contact(net.sf.json.JSONObject.fromObject(jsonData)) 在groovy 2.3+中使用本机方法的正确方法是什么? 否则,我可以去另一个像gson这样的图书馆( http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/ ) package test import groovy.json.JsonOutput import net.sf.json.JSONObject class JsonTest { public static void main(String[] args) { JsonTest test = new JsonTest() test.serialization() } public void serialization(){ Contact contact = new Contact() contact.name = ‘John’ contact.registration = Date.parse(‘dd/MM/yyyy’, […]

jackson – json编码双精度控制精度

我正在使用double值数组编码复杂的Map结构。 高精度并不重要,输出大小也是如此,所以我试图使用提供的DecimalFormat来获取JSON工具(在本例中为Jackson)来序列化double值。 以下是我最好的镜头,但由于对象映射器没有选择序列化程序来编码数组,因此失败了: class MyTest { public class MyDoubleSerializer extends JsonSerializer { public void serialize(double[] value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { for (double d : value) { jgen.writeStartArray(); jgen.writeRaw( df.format( d ) ); jgen.writeEndArray(); } } } @Test public void test1() throws Exception { ObjectMapper mapper = new ObjectMapper(); SimpleModule module = […]

Serializable Singleton Instance的readResolve()方法的实现

我试图通过添加readResolve()方法编写Serializable Singleton类。 我的目的是在序列化时获得与对象状态相同的对象。 下面是我的测试示例代码: import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; public class SingletonDemo { public static void main(String[] args) { Singleton obj = Singleton.getInstance(); System.out.println(“After NEW Object creation : ” + obj); obj.i = 5; System.out.println(“Object modified”); System.out.println(“After Object 1st Modification : ” + obj); serializeMe(); System.out.println(“Serialized […]