我想将缓存引入到现有的 Spring 项目中,该项目使用 JAXB 来公开 WebServices。缓存将在端点级别完成。为了做到这一点,使用 JAXB 从 XSD 生成的类需要实现Serializable
接口和覆盖Object
's toString()
method.
如何指示 xjc 工具使用 XSD 生成具有所需属性的源?
可串行化
Use xjc:serializable
在自定义绑定文件中添加java.io.Serializable
与您的类的接口以及serialVersionUID
:
<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://java.sun.com/xml/ns/jaxb"
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xsi:schemaLocation="
http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
version="2.1">
<globalBindings>
<serializable uid="1" />
</globalBindings>
</bindings>
toString()
使用超类(参见xjc:superClass
),所有绑定的类都将从中继承。该类不会由 xjc 生成,因此您可以随意创建它(此处带有toString()
执行):
<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://java.sun.com/xml/ns/jaxb"
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xsi:schemaLocation="
http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
version="2.1">
<globalBindings>
<serializable uid="1" />
<xjc:superClass name="the.package.to.my.XmlSuperClass" />
</globalBindings>
</bindings>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)