jaxb 相关问题

用于XML绑定的Java体系结构是将XML用作域对象的Java标准。它提供了一种将Java类映射到XML表示的简单机制。

尝试从 WSDL 文件生成时出现 Maven 问题

我尝试从 wsdl 文件生成源代码,但我在 pom.xml 上不断遇到错误,我认为这可能是我的问题?以下是我从 pom 和 pom 文件中得到的错误。我也...

回答 9 投票 0

org.glassfish.jaxb.runtime.v2.runtime.IllegalAnnotationsException:1 个 IllegalAnnotationExceptions @XmlValue

org.glassfish.jaxb.runtime.v2.runtime.IllegalAnnotationsException:1 个 IllegalAnnotationException 计数。如果是 @XmlElement 类的属性,则不能使用属性 @

回答 1 投票 0

使用 EclipseLink MOXy 生成 XSD 时出现意外的字母顺序

长期运行的项目在从 org.eclipse.persistence:org.eclipse.persistence.moxy:2.7.12 升级到 org.eclipse.persistence:org.eclipse.persistence.moxy:2.7.13 时显示出意外的行为...

回答 1 投票 0

Apache CXF XSD 方案改为 Java,更改输出类和工厂名称

我正在使用 CXF maven 插件根据 XSD 方案定义生成 Java 类。我使用两个 xsdOptions 标签将两种不同方案的 Java 文件创建到两个不同的包中。生成的...

回答 1 投票 0

如何利用 Java 11 中的 cxf-xjc-plugin 生成的类?

使用 Apache cxf-xjc-plugin 和 Java 11 工作正常,我能够从 xsd 文件生成 Java 源。当尝试将这些 Java 类与 JAXB 一起使用时,问题就出现了:可用...

回答 2 投票 0

cxf-xjc-plugin:如何为复杂类型添加@XMLRoot注解?

我有一个 XSD 架构,并且有一个“任何”元素 我有一个 XSD 架构,并且有一个“任何”元素 <xs:any minOccurs="0" maxOccurs="unbounded" namespace="http://the-namespace.org" processContents="lax"/> 这意味着我可以在这里添加“http://the-namespace.org”中定义的任何元素 这正是我想做的: return MyObject.builder() // ... .withAny(AnyObjectFromNamespace.builder().build()) .build(); 当我现在运行 xsdtojava 时,我收到错误: Caused by: com.sun.istack.SAXException2: Marshalling von Typ "AnyObjectFromNamespace" as element is not possible, because a @XmlRootElement-Annotation is missing 所以我现在的问题是如何添加 XmlRootElement 注释而不更改我的 xsd 架构?` 这是我的pom.xml: <dependencies> <dependency> <groupId>org.jvnet.jaxb2_commons</groupId> <artifactId>jaxb2-basics</artifactId> <version>1.11.1</version> </dependency> <dependency> <groupId>org.jvnet.jaxb2_commons</groupId> <artifactId>jaxb2-basics-runtime</artifactId> <version>1.11.1</version> </dependency> <!-- needed for builder plugin --> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>2.3.3</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-core</artifactId> <version>2.3.0.1</version> </dependency> <!-- java time instead of xml gregorian calendar --> <dependency> <groupId>com.migesok</groupId> <artifactId>jaxb-java-time-adapters</artifactId> <version>1.1.3</version> </dependency> </dependencies> <build> <defaultGoal>install</defaultGoal> <plugins> <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-xjc-plugin</artifactId> <version>3.3.0</version> <configuration> <extensions> <!-- Default Values --> <extension>org.apache.cxf.xjcplugins:cxf-xjc-dv:3.3.0</extension> <!-- Equals, HashCode, ToString, etc. --> <extension>org.jvnet.jaxb2_commons:jaxb2-basics:1.11.1</extension> <!-- Builder, Immutable, etc. --> <extension>net.codesup.util:jaxb2-rich-contract-plugin:2.0.1</extension> </extensions> </configuration> <executions> <execution> <id>generate-sources</id> <phase>generate-sources</phase> <goals> <goal>xsdtojava</goal> </goals> <configuration> <sourceRoot>${project.build.directory}/generated-sources</sourceRoot> <xsdOptions> <xsdOption> <extension>true</extension> <xsd>${basedir}/src/main/resources/xsd/schema.xsd</xsd> <bindingFile>${basedir}/src/main/resources/xjb/binding.xjb</bindingFile> <extensionArgs> <!-- Enable Default Values Generation --> <extensionArg>-Xdv</extensionArg> <!-- Enable Equals Generation --> <extensionArg>-Xequals</extensionArg> <!-- Enable Hashcode Generation --> <extensionArg>-XhashCode</extensionArg> <!-- Enable ToString Generation --> <extensionArg>-XtoString</extensionArg> <!-- Enable Builder Generation --> <extensionArg>-Xfluent-builder</extensionArg> </extensionArgs> </xsdOption> </xsdOptions> </configuration> </execution> </executions> </plugin> </plugins> </build> XMLSchema 内容模型不允许 anyType 作为顶级 node。因此,anyType不能属于根元素,并且@XmlRootElement不会是神话野兽的有效Java注释。 Content Model : {http://www.w3.org/2001/XMLSchema}Schema ( (include | import | redefine | annotation)*, ( ( ( ( (simpleType | complexType | group | attributeGroup) ) | element | attribute | notation ) ), annotation* )* ) 实验 此 下载 (zip) 包含一个独立的 Maven 项目,该项目使用 cxf-xjc-plugin 为简单的 po.xsd 生成 Java (JAXB) 类。您可以用它来进行实验anyType。

回答 1 投票 0

如何使用 Jakarta XML Unmarshaller 解组没有命名空间的 XML?

我正在尝试使用 jakarta.xml.bind.Unmarshaller 将 XML 解组为 Java 对象,但我的 XML 不包含某些默认名称空间,因为它们已经是 XSD 的一部分。如何...

回答 1 投票 0

引用xjc生成的文件的正确方法是什么

我刚刚使用 jaxb xjc 自动生成一个类,这样我就可以在我的 Java 项目中编组和解组 xml 属性。我通过将以下内容添加到我的 POM 中来完成此操作 <

回答 1 投票 0

JAXB:如何向使用 xjc 生成的类添加 PropertyChangeListener 支持

似乎曾经有一个名为inject-listener-code的插件JAXB的xjc,它向生成的类添加了PropertyChangeListener功能(此处引用,例如:http://hwellmann.blo...

回答 1 投票 0

使用xjc向jaxb类添加附加属性

我有一个巨大的xsd 文件,我想使用xjc 将其转换为jaxb 类。我已经成功完成了这一点,既使用 Maven,又手动使用 xjc.sh 脚本。 但我确实有一个非常具体的

回答 1 投票 0

如何使用 JAXB 从 xsd 生成实现 Serialized 接口的 Java 类?

我想将缓存引入到现有的 Spring 项目中,该项目使用 JAXB 来公开 WebServices。缓存将在端点级别完成。为了做到这一点,从...生成的类

回答 7 投票 0

Spring MVC:没有预设内容类型为“null”的 [class com.gcu.model.OrderList] 转换器

我的 Spring MVC 应用程序遇到问题,我尝试返回 OrderList 类型的对象作为 HTTP 响应,但收到以下警告消息: 警告 21264 --- ...

回答 1 投票 0

Java 17 - java.lang.NoClassDefFoundError:javax/xml/bind/annotation/XmlElement

我有一个 Java17 的 gradle 项目,在运行测试时出现以下错误: java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlElement 测试如下: 公开

回答 1 投票 0

如何使用gradle运行jaxb xjc任务?

我为 jaxb/xjc 选择了 3 个 gradle 插件,但没有一个对我有用。 对于每种情况,我都将 maven 模型 xsd maven-4.0.0.xsd https://maven.apache.org/xsd/maven-4.0.0.xsd 放在 src/main/xsd 中。 (...

回答 1 投票 0

JAXB 解组不起作用。预期的元素是(无)

我正在尝试解组 XML。 这就是我的 XML 的样子 我正在尝试解组 XML。 这就是我的 XML 的样子 <DeviceInventory2Response xmlns="http://tempuri.org/"> <DeviceInventory2Result xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <Obj123 xmlns=""> <Id>1</Id> <Name>abc</Name> </Obj123> <Obj456 xmlns=""> . . . 我正在尝试获取 Obj123 下的 Id 和 Name。但是,当我运行 unmarshal 命令时,出现以下错误。 An Error: javax.xml.bind.UnmarshalException: unexpected element (uri:"http://tempuri.org/", local:"DeviceInventory2Response"). Expected elements are (none) 我的代码在主类中看起来像这样: Obj123 myObj123 = (Obj123) unmarshaller.unmarshal(inputSource); 我的 Obj123 类如下所示: package com.myProj.pkg; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; @XmlRootElement(name="Obj123") public class Obj123 { private String Id; private String Name; public String getId() { return Id; } public String getName() { return Name; } } 我认为通过设置 XMLRootElement 我应该能够跳过 XML 的前两行,但这似乎没有发生。有什么想法吗? 编辑: 这就是我的 JAXB 上下文的制作方式: JAXBContext jaxbContext = JAXBContext.newInstance(); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); Obj123 obj123 = (Obj123) unmarshaller.unmarshal(xmlStreamReader); 我通过添加解决了问题 @XmlRootElement(name="abc_xxx") 到 Root 类。(其中 abc_XXX 是 XML 的根标签) eclipse生成的JAXB类没有在我的根类中添加这个注解。 JAXB 实现将尝试匹配文档的根元素(而不是子元素)。 如果您想解组到 XML 文档的中间,那么您可以使用 StAX 解析文档,将 XMLStreamReader 推进到所需的元素,然后对其进行解组。 了解更多信息 http://blog.bdoughan.com/2012/08/handle-middle-of-xml-document-with-jaxb.html 更新 现在我收到以下错误。一个错误: javax.xml.bind.UnmarshalException - 带有链接异常: [javax.xml.bind.UnmarshalException:意外元素(uri:“”, 本地:“Obj123”)。预期元素为(无)]。 A JAXBContext 只知道你告诉它的类。而不是: JAXBContext jaxbContext = JAXBContext.newInstance(); 你需要做: JAXBContext jaxbContext = JAXBContext.newInstance(Obj123.class); 使用 ObjectFactory 类代替,如 JAXBContext jaxbContext = null; try { jaxbContext = JAXBContext.newInstance(ObjectFactory.class); } catch (JAXBException e) { e.printStackTrace(); } JAXBElement<ObjectFactory> applicationElement = null; try { applicationElement = (JAXBElement<ObjectFactory>) unmarshaller.unmarshal(Thread.currentThread().getClass() .getResourceAsStream(fileName)); } catch (JAXBException e) { e.printStackTrace(); } 试试这个就能解决上述问题。我的问题已经解决了 当我将导入语句从 javax.xml.bind.annotation.XmlRootElement 更新为 @jakarta.xml.bind.annotation.XmlRootElement 时,问题已解决

回答 4 投票 0

Spring boot - 服务器无法识别 HTTP 标头 SOAPAction 的值

我想使用jaxb使用肥皂服务。 jaxb 生成的请求是 ...

回答 3 投票 0

如何使用@JmsListener获取转换后的对象

我正在使用 Spring 和 Jaxb 来监听 JMSQueue,然后将 JMS 消息解组到 java 对象中。然后我希望在我的 @JmsListener 端点上获取该 Java 对象。但相反,我...

回答 1 投票 0

将 HyperJaxb3 包含为 Maven 依赖项时出现 ServiceConfigurationError

我知道 Hyperjaxb3 库对我的项目非常有用,阅读了多个站点的一些描述,并决定将其嵌入到我的 Spring-Hibernate 项目中。 我有...

回答 1 投票 0

HyperJaxb3 项目发生了什么?

我知道 Hyperjaxb3 库对我的项目非常有用,阅读了多个站点的一些描述,并决定将其嵌入到我的 Spring-Hibernate 项目中。 我有...

回答 2 投票 0

发送字符串而不是 JAXBElement<String>

我正在使用 Java 项目中的 .NET Web 服务。我正在使用 Netbeans 8.2 并导入了 Web 服务。当我创建复杂对象时,问题就出现了,Netbeans 或 Java 转换了 e...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.