问题标签 [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.
xml-serialization - 使用 XMLEncoder/Decoder 默认调用 newInstance?
通过反复试验,我发现标准 java.bean XMLEncoder/Decoder 将始终使用静态工厂“newInstance”方法,而不是 null 构造函数(但仅当它被命名为“newInstance”时)。我找不到这是任何文档或在 DefaultPersistence 委托中。
我找错地方了吗?
例子:
`
运行 loadTestFile 时来自 newInstance 的堆栈转储是:
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?
java - XMLEncoder 跳过 ActionListener
我有一个用 XMLEncoder 编码的 JButton,一切都很好,直到我尝试添加一个 ActionListener。现在,我收到了这条消息
有谁知道为什么会发生这种情况,或者如何预防?
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
java - 将 Windows-1252 xml 文件转换为 UTF-8
有什么方法可以将大型 XML 文件(500+MB)从“Windows-1252”编码转换为“UTF-8”编码在 java 中?
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 编码器或这种方法的这个问题,有什么我可以在代码中修复的问题,或者这看起来更下游吗?我错过了什么?
java - 如何使用 XMLEncoder 序列化 wsimport 生成的类?
我想用 wsimport 工具生成的 XMLEncoder 类进行序列化。有许多 ArrayOfXXXXXX 类具有以下结构:
当我序列化 ArrayOfSitejournal 类时,我得到以下输出:
没有 setItem() 方法,所以 item 属性没有被序列化。我的问题是:如何将整个 ArrayOfSitejournal 对象与项目成员一起序列化?
我无法更改此类的代码,因为它是生成的。
我知道我可以编写 PersistenceDelegate 来自定义序列化。但是要像这样反序列化它的调用是必要的:
你能帮我写这样的PersistenceDelegate吗?
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
吗?
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(...)
工作将是最优雅的方式)
java - 使用 XMLEncoder 时出现 java.lang.Instantiation 异常
我正在尝试在我的 Java 程序中使用 XMLEncoder,但我得到了一个 java.lang.InstantiationException。以下是我正在使用的代码:
除此之外:我还有两个班级:classA 和 classB。这两个类都实现了 Serializable。ClassA 有一个 ClassB 的 ArrayList。两个类的所有字段都有 getter 和 setter 方法。确切的错误(堆栈跟踪)是;
我无法弄清楚出了什么问题或这些错误意味着什么。我应该如何纠正我的代码以使事情正常进行?
谢谢。