继承关系在Java中太常见了. 而用父类作为参数或者返回值转递时,生成的schema xsd里面不包含子类的定义, 所以在子类中拿到的一直都是父类.
google了一下, 网上这个问题的答案很少. 特此记之.
举例:
public class MO {
public String dn;
}
public class MoOne extends MO {
public String one;
}
@WebService(serviceName = "MoService")
public class MoService {
public MO get(long id) {
return new MoOne(id);
}
}
客户端wsimport生成的代码里面不会有MoOne, 并且调用结果只是MO.
解决方法有两个:
1. JAXBContext.newInstance(MoOne.class) //这个方法太猥琐, 如果发布在J2EE容器里面,还是不会自动生成wsdl
2. 在Jaxb2.1里面这个问题用@XmlSeeAlso解决了, 在MO上面加上一个:
@XmlSeeAlso({MoOne.class,MoTwo.class})
在客户端引用之后, 可以看到MoOne的类已经自动生成了.
有人会怀疑, 为什么jaxb这么呆, 不会自己找到子类去生成schema? 对, 就是这么呆, java里面是不支持对子类的查询的, 就是不知道MO有哪些子类. 所以要手工声明出来. 当然如果一定要做, 还是有技巧的. sun考虑到网络加载什么的, 就把自己限定在那里了.
分享到:
相关推荐
开发JAR包集合-cxf/dom4j/jaxb/json/jta/jxl 解压文件得到如下jar包 cxf-2.2.8.jar dom4j-1.6.1.jar ehcache-core-2.2.0.jar jaxb-api-2.2.jar jaxb-impl-2.2.jar json-lib-2.4-jdk15.jar json-lib-ext-...
Java中的JAXB(Java Architecture for XML Binding)是一个用于在Java对象和XML之间进行绑定的工具,使得我们可以方便地在XML文档和Java对象之间进行转换。它简化了Web服务的开发,尤其是在处理XML数据时。本篇文章...
**JAXB(Java Architecture for XML Binding)** 是Java平台中用于XML到Java对象绑定的API,它是Java EE和Java SE标准的一部分,允许开发者在Java应用程序中方便地将XML数据转换为Java对象,反之亦然。这个过程极大...
NULL 博文链接:https://endeavor416.iteye.com/blog/270507
在WebService中,Schema起着至关重要的作用,因为它为交换的数据提供了严格的语义定义,确保了不同系统间数据的准确性和一致性。 首先,让我们理解一下WebService的基本概念。WebService的核心技术包括SOAP(Simple...
在Java世界中,使用JAXB(Java Architecture for XML Binding)库可以方便地实现XML数据与Java对象之间的转换,从而在WebService中轻松处理数据交换。本篇文章将深入探讨如何使用JAXB进行XML到Object以及Object到XML...
### WebService技术与Java中的CXF框架应用 #### 一、WebService概述 WebService是一种跨语言、跨平台的应用间通信协议,允许在分布式环境下构建松耦合、标准的应用组件。通过XML、SOAP、WSDL和UDDI等标准,...
- 将JWSDP/jaxb/bin目录添加到PATH环境变量中。 - 同样地,将JWSDP/jwsdp-shared/bin目录添加到PATH环境变量中。 #### 三、XML模式分析 接下来,我们来看一个简单的例子。假设我们有一个XML模式(catalog.xsd)...
在实际应用中,你可能还需要处理更复杂的情况,比如处理多个命名空间、处理嵌套的对象以及处理继承关系。JAXB提供了丰富的功能和灵活性来处理这些情况,但同时也需要对XML和Java反射机制有深入的理解。 总结一下,...
impl.jar`是Java Architecture for XML Binding (JAXB)的一个实现包,它是Java平台标准版(Java SE)和企业版(Java EE)的一部分,主要用于XML到Java对象的绑定以及反之,使得开发者能够方便地在Java程序中处理XML...
jaxb还提供了大量的实例和教程,例如编写第一个jaxb程序、为jaxb编写Schema、schema的时间日期类型、schema的list元素、使用枚举类型、使用schema的choice类型、同构集合、schema编写继承关系、schema的ID和IDREF等...
Java Architecture for XML Binding (JAXB) 是Java平台中用于XML到Java对象绑定的标准技术,它允许开发者在Java程序中直接操作XML数据,而无需编写大量的XML解析和序列化代码。JAXB 2.3.0是该技术的一个版本,包含了...
在本话题中,我们将深入探讨如何利用WSDL文件生成Java代码,以便于开发和调用WebService。 WSDL文件是WebService的核心,它定义了服务的接口、消息格式、操作和地址等信息。WSDL是XML格式的,可以被工具解析并生成...
在Java世界中,Java ...总的来说,JAXB通过自动化XML Schema到Java对象的映射,简化了开发过程中XML数据的处理,提高了开发效率和代码的可维护性。结合XSD,可以确保数据的结构正确性,避免因格式错误导致的问题。
- 由JAXB自动生成的Java类,这些类对应于XML Schema中的元素和类型。 - 一个或多个Java源代码文件,演示如何使用JAXB进行 marshalling 和 unmarshalling。 - 测试用例,展示了如何在实际应用中使用这些类进行数据...
标题中的“testXML.zip_xml/soap/webservice_Java_”暗示了这个压缩包包含了一个关于XML、SOAP(Simple Object Access Protocol)和Web服务的Java实现示例。描述中提到的是一个“简单易学的XML解析JAVA完整实例”,...
javaweb常用jar包,javaee框架常用jar包,亲测可用,若需其他版本可给我留言
在Java开发环境中,`javax.rar`这一提及实际上与RAR压缩库无关,而是涉及到Java的XML绑定(JAXB)技术。标题中的"jaxb-impl-2.3.0、jaxb-core-2.3.0、jaxb-api-2.3.0"是JAXB的不同组件版本号,它们在处理XML到Java...
1. Java官方文档:https://docs.oracle.com/javase/8/docs/technotes/guides/xml/jaxb/index.html 2. JAXB Tutorials:https://www.baeldung.com/jaxb 3. Stack Overflow:...