JAXB使用JAX-WS绑定生成可序列化的类
拥有JAXB-RI和CXF。 WSDL首先。 我想要一个生成的类来实现Serializable
。 我现在有以下绑定xml,它工作(SEI类名称被更改)
不,在这种情况下,我应该添加的位置和内容。 我试过了:
和
标记内部和外部 – 未添加
Serializable
,或者根本不生成类(没有任何错误)。
另见这个主题
那么,究竟如何做到这一点
我用两种方式使它工作:
-
使用第二个绑定文件,只有JAXB,就像Pascal在他的回答中所显示的那样
-
通过指定另一个处理整个命名空间的
标记:
你可以实现一个XJC插件来做到这一点:
public class SerializablePlugin extends Plugin { @Override public boolean run(Outline outline, Options options, ErrorHandler errorHandler) throws SAXException { for (ClassOutline classOutline : outline.getClasses()) { JDefinedClass definedClass = classOutline.implClass; definedClass._implements(codeModel.ref(Serializable.class)); } return true; } ... }
然后,您可以将插件添加到SchemaCompiler选项:
WsimportOptions wsimportOptions = new WsimportOptions(); wsimportOptions.getSchemaCompiler().getOptions().activePlugins.add(new SerializablePlugin());