Tag: jaxb

XJC – 编译器无法遵守此类自定义

我想从我的Java项目调用ISAN Restful API,所以我试图使用maven-jaxb2-plugin从xsd文件生成java bean。 这是xsds: http://www.isan.org/schema/v1.11/common/common.xsd http://www.isan.org/schema/v1.21/common/serial.xsd http://www.isan.org/schema/v1.11/common/version.xsd http://www.isan.org/ISAN/isan.xsd http://www.isan.org/schema/v1.11/common/title.xsd http://www.isan.org/schema/v1.11/common/externalid.xsd http://www.isan.org/schema/v1.11/common/participant.xsd http://www.isan.org/schema/v1.11/common/language.xsd http://www.isan.org/schema/v1.11/common/country.xsd 我下载了这些文件并将它们复制到我的src / main / resources文件夹中并定义了一个目录。 当我构建项目时,我收到一个错误,因为两个类型具有相同的名称: org.xml.sax.SAXParseExceptionpublicId: http://www.isan.org/schema/v1.11/common/language; systemId: http://www.isan.org/schema/v1.11/common/language.xsd; lineNumber: 39; columnNumber: 48; A class/interface with the same name “org.isan.CodingSystemType” is already in use. Use a class customization to resolve this conflict. org.xml.sax.SAXParseExceptionpublicId: http://www.isan.org/schema/v1.11/common/country; systemId: http://www.isan.org/schema/v1.11/common/country.xsd; lineNumber: 39; columnNumber: 48; […]

在JBoss AS 7中找不到JAXB com.sun.xml.internal.bind.v2.ContextFactory类

在JBoss中使用JAXB时,我在执行代码时遇到exception: JAXBContext jaxbContext = JAXBContext.newInstance( jaxbElement.getClass().getPackage().getName() ); 我得到的例外是: [java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory from [Module “deployment.project.ear.subproject-jboss.jar:main” from Service Module Loader]] at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:156) [jboss-jaxb-api_2.2_spec-1.0.4.Final-redhat-3.jar:1.0.4.Final-redhat-3] at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:108) [jboss-jaxb-api_2.2_spec-1.0.4.Final-redhat-3.jar:1.0.4.Final-redhat-3] at javax.xml.bind.ContextFinder.find(ContextFinder.java:258) [jboss-jaxb-api_2.2_spec-1.0.4.Final-redhat-3.jar:1.0.4.Final-redhat-3] at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:412) [jboss-jaxb-api_2.2_spec-1.0.4.Final-redhat-3.jar:1.0.4.Final-redhat-3] at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:375) [jboss-jaxb-api_2.2_spec-1.0.4.Final-redhat-3.jar:1.0.4.Final-redhat-3] at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:279) [jboss-jaxb-api_2.2_spec-1.0.4.Final-redhat-3.jar:1.0.4.Final-redhat-3] 看起来JBoss JAXB模块正在加载而不是JDK,这是exception的原因,但是我不知道如何解决这个错误?

Jaxb 2将不同的元素映射到同一属性

我想知道这是否可能在jaxb2中。 我有一个可以是或的xml,它在某个时候永远不会出现。 它们都是String类型,我希望它映射到我的java类中的相同属性。 在jaxb2中有没有办法配置它? 谢谢查理

解析的SOAP响应与接收的响应不同

我试图解析SOAP响应。 我可以使用以下行显示完整的响应。 System.out.println(“Response: ” + out.toString()); 但是,当我解析响应并对解析后的响应进行编组时,它会显示错误的响应。 package-info.java @XmlSchema( namespace = “http://v3.hotel.wsapi.ean.com/”, elementFormDefault = XmlNsForm.QUALIFIED) package com.ean; import javax.xml.bind.annotation.XmlNsForm; import javax.xml.bind.annotation.XmlSchema; 我的代码 @XmlRootElement(name=”getListResponse”) @XmlAccessorType(XmlAccessType.FIELD) public class GetListResponse { @XmlElement(name=”HotelListResponse”) private HotelListResponse hotelListResponse; public GetListResponse() { this.hotelListResponse = new HotelListResponse(); } …getter and setter } @XmlRootElement(name =”HotelListResponse”) @XmlAccessorType(XmlAccessType.FIELD) public class HotelListResponse { @XmlElement(name = “customerSessionId”) String […]

在JAXB中编组抽象类的arraylist

我有一个Java应用程序,我想用XML而不是数据库保存数据。 我们决定使用JAXB而不是基于模式生成文件,我们只是在Java文件中添加了注释。 我们遇到的问题是我们有一个名为Node的抽象类的ArrayList。 Node具有Module或ScreenImage的子类。 当我们编组arraylist时,它不会保存类型。 如: xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:type=”Module” JAXB是否支持抽象元素? 如何让JAXB保存类型,以便我可以解组它?

使用XJC生成Java源时使用JAXWS enableWrapperStyle

我正在尝试从XSD生成Java源代码,并且必须使用JAXWS禁用包装器样式。 我编写了自定义绑定,但似乎JAXWS不能与XJC一起使用。 我使用的绑定非常简单。 false 如果我正在尝试运行ant脚本,我将收到以下错误消息。 [xjc] [ERROR] Unsupported binding namespace “http://java.sun.com/xml/ns/jaxws”. Perhaps you meant “http://java.sun.com/xml/ns/jaxb/xjc”? [xjc] line 2 of file:/D:/xxxxxxxxxx/xxxxx/xxxx.xsd [xjc] [ERROR] cvc-complex-type.2.4.a: Invalid content was found starting with element ‘jaxws:enableWrapperStyle’. One of ‘{“http://java.sun.com/xml/ns/jaxb”:javaType, “http://java.sun.com/xml/ns/jaxb”:serializable, “http://java.sun.com/xml/ns/jaxb/xjc”:serializable, “http://java.sun.com/xml/ns/jaxb/xjc”:superClass, “http://java.sun.com/xml/ns/jaxb/xjc”:superInterface, “http://java.sun.com/xml/ns/jaxb/xjc”:typeSubstitution, “http://java.sun.com/xml/ns/jaxb/xjc”:smartWildcardDefaultBinding, “http://java.sun.com/xml/ns/jaxb/xjc”:simple, “http://java.sun.com/xml/ns/jaxb/xjc”:treatRestrictionLikeNewType, “http://java.sun.com/xml/ns/jaxb/xjc”:javaType, “http://java.sun.com/xml/ns/jaxb/xjc”:generateElementProperty, “http://java.sun.com/xml/ns/jaxb/xjc”:noMarshaller, “http://java.sun.com/xml/ns/jaxb/xjc”:noUnmarshaller, “http://java.sun.com/xml/ns/jaxb/xjc”:noValidator, “http://java.sun.com/xml/ns/jaxb/xjc”:noValidatingUnmarshaller}’ is expected. [xjc] line 8 of file:/D:/xxxxxxxxxx/xxxxx/xxxx/xsd/xsd-binding.xml […]

JAXB覆盖@XmlElement类型的列表

有一个简单的类Bean1 ,其子类列表为BeanChild1 。 @XmlRootElement(name=”bean”) @XmlAccessorType(XmlAccessType.PROPERTY) public static class Bean1 { public Bean1() { super(); } private List childList = new ArrayList(); @XmlElement(name=”child”) public List getChildList() { return childList; } public void setChildList(List pChildList) { childList = pChildList; } } public static class BeanChild1 { … } 我试图覆盖该类,以更改列表的类型。 新的子类(即BeanChild2 )扩展了前一个(即BeanChild1 )。 public static class Bean2 extends […]

注释CXF(wsdl2java)生成的包

我需要添加包级别注释(XmlJavaTypeAdapters类型适配器)。 问题是,当我运行wsdl2java时,它会为该包生成package-info.java文件。 当我尝试添加自己的package-info.java时,我收到错误:“类型package-ingo已经定义”。 有没有办法将我的注释注入package-info.java? 也许还有其他想法吗? 谢谢

在JAXB MOXy中列出包装器

我正在声明一个List对象属性: @XmlRootElement(namespace = “…”) @XmlType public class Test { private List myList; @XmlElementWrapper(name = “myListWrapper”) @XmlElement(name = “myList”) public List getMyList() { return myList; } } 当具有空列表myList的此类的实例被编组时,MOXy不会生成空包装器MyListWrapper 。 但是,JAXB RI会这样做。 使用RI时生成的XML看起来像这样: 有没有办法用MOXy获得相同的结果?

JAXB – 如何序列化集合的子类中的字段

我无法序列化我的类中的字段,这是ArrayList的子类。 添加到列表中的项目是序列化的,但字段不是: @XmlRootElement public static class NumberedList extends ArrayList{ @XmlAttribute private int number = 5; @XmlList public List getNames(){ return this; } public NumberedList(){ add(“a”); add(“b”); } } @XmlRootElement public static class FieldTest{ @XmlElement NumberedList list = new NumberedList(); } public static void main(String[] args) throws Exception{ JAXBContext context = JAXBContext.newInstance(FieldTest.class); Marshaller marshaller = context.createMarshaller(); […]