32.4. 在 Runtime Marshaller 中添加类


概述

当 Apache CXF 运行时读写 XML 数据时,它使用将 XML Schema 类型与代表 Java 类型关联的映射。默认情况下,映射包含 WSDL 合同 架构 元素的目标命名空间中定义的所有类型。它还包含从导入到 WSDL 合同的任何模式的命名空间生成的任何类型的类型。

利用 @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 类支持所需的类型效率更高。包括 ObjectFactory 类包括已知到对象工厂的所有类。

示例

例 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 {
        ...
    }
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.