32.4. 在 Runtime Marshaller 中添加类
概述
当 Apache CXF 运行时读取和写入 XML 数据时,它使用一个映射来将 XML 架构类型与其代表 Java 类型相关联。默认情况下,映射包含 WSDL 合同 架构
元素的目标命名空间中定义的所有类型。它还包含从导入到 WSDL 合同中任何模式的命名空间生成的类型。
除了应用程序 schema
元素所使用的命名空间以外的命名空间添加类型,可以使用 @XmlSeeAlso
注释来完成。如果您的应用程序需要处理在应用的 WSDL 文档范围外生成的类型,您可以编辑 @XmlSeeAlso
注释,将它们添加到 JAXB 映射中。
使用 @XmlSeeAlso 注释
@XmlSeeAlso
注释可以添加到您的服务的 SEI 中。它包含要在 JAXB 上下文中包含的以逗号分隔的类列表。例 32.7 “将类添加到 JAXB 上下文的语法” 显示使用 @XmlSeeAlso
注释的语法。
例 32.7. 将类添加到 JAXB 上下文的语法
import javax.xml.bind.annotation.XmlSeeAlso; @WebService() @XmlSeeAlso({Class1.class, Class2.class, ..., ClassN.class}) public class GeneratedSEI { ... }
在您有权访问 JAXB 生成的类时,使用生成的 ObjectFactory
类来支持所需类型会更为高效。包含 对象
factory 类,包括对象工厂已知的所有类。
示例
例 32.8 “将类添加到 JAXB 上下文” 显示标记为 @XmlSeeAlso
的 SEI。
例 32.8. 将类添加到 JAXB 上下文
...
import javax.xml.bind.annotation.XmlSeeAlso;
...
@WebService()
@XmlSeeAlso({org.apache.schemas.types.test.ObjectFactory.class, org.apache.schemas.tests.group_test.ObjectFactory.class})
public interface Foo {
...
}