问题标签 [xmlencoder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
315 浏览

xml-serialization - 使用 XMLEncoder/Decoder 默认调用 newInstance?

通过反复试验,我发现标准 java.bean XMLEncoder/Decoder 将始终使用静态工厂“newInstance”方法,而不是 null 构造函数(但仅当它被命名为“newInstance”时)。我找不到这是任何文档或在 DefaultPersistence 委托中。

我找错地方了吗?

例子:

`

运行 loadTestFile 时来自 newInstance 的堆栈转储是:

0 投票
0 回答
485 浏览

java - 与 java 6 相比,XMLEncoder 在 java 7 中生成的人类可读 XML 更少

这是一个演示问题的简单示例:

考虑两个 bean 类 Alpha 和 Beta:

然后创建 Alpha 和 Beta 的实例,并将 Alpha 对象写入 XML:

在 java 6 中,这会产生以下 XML:

但在 java 7 中,结果是:

java 7 生成的 XML 比 java 6 XML 的可读性要差得多(当然,对于更复杂的示例来说尤其如此)。在上面的示例中,java 7 编码器在“beta”的定义中定义了“alpha”的“name”属性,因为“beta”也有对“alpha”的引用。这种行为可能会导致深度嵌套和丑陋的 XML。

有没有办法让 java 7 中的 XML 编码器生成 java 6 风格的 XML?

0 投票
1 回答
267 浏览

java - XMLEncoder 跳过 ActionListener

我有一个用 XMLEncoder 编码的 JButton,一切都很好,直到我尝试添加一个 ActionListener。现在,我收到了这条消息

有谁知道为什么会发生这种情况,或者如何预防?

0 投票
0 回答
155 浏览

java - Error in creating xml file from java object

when i try to store my CreateNode object in a xml file it gives me the following error

here is my node class

and an object is created in the following class

And i try to serialize/store the object in xml file here but it gives me error

0 投票
3 回答
2641 浏览

java - 将 Windows-1252 xml 文件转换为 UTF-8

有什么方法可以将大型 XML 文件(500+MB)从“Windows-1252”编码转换为“UTF-8”编码在 java 中?

0 投票
1 回答
263 浏览

java-7 - XMLEncoder 刷新上的 Java IOException

我最近升级到 Java 7,我注意到 XML 序列化的一个奇怪问题。基本上,我有一个测试实用程序类,它使用 XML 编码器进行对象到 XML 的转换。

请参阅下面的示例代码:

这在 Java 1.6 上运行良好,但是自从我升级到 Java 1.7 后,我注意到 XML 编码器操作在日志中引发了 IOException:

我查看了 XMLEncoder 代码,发现 StreamEncoder.ensureOpen 对 isOpen 进行了检查,这似乎是错误的。

这个问题看起来很相似,尽管它没有使用 Java 1.7 XML 编码器。我没有看到 XML 编码器或这种方法的这个问题,有什么我可以在代码中修复的问题,或者这看起来更下游吗?我错过了什么?

0 投票
1 回答
604 浏览

java - 如何使用 XMLEncoder 序列化 wsimport 生成的类?

我想用 wsimport 工具生成的 XMLEncoder 类进行序列化。有许多 ArrayOfXXXXXX 类具有以下结构:

当我序列化 ArrayOfSitejournal 类时,我得到以下输出:

没有 setItem() 方法,所以 item 属性没有被序列化。我的问题是:如何将整个 ArrayOfSitejournal 对象与项目成员一起序列化?

我无法更改此类的代码,因为它是生成的。

我知道我可以编写 PersistenceDelegate 来自定义序列化。但是要像这样反序列化它的调用是必要的:

你能帮我写这样的PersistenceDelegate吗?

0 投票
2 回答
332 浏览

java - 如何禁用 XMLEncoder 的冗余消除功能以确保 POJO 完全序列化?

我一直在使用XMLEncoder将 POJO 转换为 XML 并再次转换回来。除了存储 POJO,一些 XML 输出也将被其他应用程序用来生成其他形式的数据,例如报告。

到目前为止,这运作良好。即使 POJO 不断发展,也没有出现任何问题。

最近我意识到并不是所有的值都是实际输出的。默认值未更改的属性将不会被写入。这对我来说是个问题。

来自 Javadoc:

"The XMLEncoder class uses a redundancy elimination algorithm internally so that the default values of a Bean's properties are not written to the stream"

对我来说,完整输出 bean 很重要——包括所有默认值。

有什么办法可以禁用这个功能XMLEncoder吗?

0 投票
1 回答
1187 浏览

java - 如何使用 XMLEncoder 使 Arraylist 线程安全且可序列化

首先:我知道 SO 中有很多相关的帖子,但我能找到的帖子对我的情况有所帮助。

所以,我正在做的是我有一个非常简单的父对象,它可能有多个子对象。这两个对象都符合 java beans 规范(所有变量的无参数构造函数、setter 和 getter)。

可能有多个父级,它们保存在一个存储库类中,如下所示:

每次创建新的父级时,存储库类都会保存从列表中构建的父级列表,parentItems如下所示:

保存操作是通过使用 将 保存List到 xml 文件中来完成的XMLEncoder。它看起来像这样:

这一切都很好。现在我想向父对象添加一些子对象,然后将新的子对象添加到子 List 并重新运行saveParents()。这是我的麻烦开始的地方:

如果我ArrayList在父级中使用 a 来保存子级,如下所示:

一切正常。对象将保存在 xml 文件的父级中。它看起来像这样:

但是:我们知道这ArrayList不是线程安全的,而且我知道父对象可能会被多人更改。那么如何解决呢?使用synchronizedList(...)- 对吗?就像是 ...

...然后只需快速将 getter 和 setter 更改为List而不是,ArrayList我们应该没问题。好的,这应该可行 - 但猜猜看:它失败了:-(

每次我添加一个子对象(并在saveParent()此之后运行)时,我都会得到一个StackOverflowException. 如果我查看 XML,我会看到如下内容:

好吧,我猜我知道堆栈溢出是从哪里来的……但是为什么呢?它应该是可序列化的,但好吧,看看它......我如何获得一个List不会爆炸的可序列化、线程安全的(或任何其他适合的数据类型)?也许您可以考虑任何解决方法以使其ArrayList(在这种情况下有效)线程安全?也许通过使整个父对象线程安全?(但是:这可能有其他副作用,这就是为什么简单地让它synchronizedList(...)工作将是最优雅的方式)

0 投票
1 回答
7107 浏览

java - 使用 XMLEncoder 时出现 java.lang.Instantiation 异常

我正在尝试在我的 Java 程序中使用 XMLEncoder,但我得到了一个 java.lang.InstantiationException。以下是我正在使用的代码:

除此之外:我还有两个班级:classA 和 classB。这两个类都实现了 Serializable。ClassA 有一个 ClassB 的 ArrayList。两个类的所有字段都有 getter 和 setter 方法。确切的错误(堆栈跟踪)是;

我无法弄清楚出了什么问题或这些错误意味着什么。我应该如何纠正我的代码以使事情正常进行?

谢谢。