问题标签 [spring-oxm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
83681 浏览

spring - 如何使用spring来编组和解组xml?

我有一个春季启动项目。我的项目中有一些 xsd。我已经使用 maven-jaxb2-plugin 生成了这些类。我已经使用教程来运行示例 Spring Boot 应用程序。

但我担心的是我需要映射模式的所有 jaxb 类。Spring 中还有什么东西可以用来让我的任务更轻松。我查看了 Spring OXM项目,但它在 xml 中配置了应用程序上下文。弹簧靴有什么我可以开箱即用的东西吗?任何示例都会有所帮助。

编辑

我尝试了 xerx593 的答案,并使用 main 方法运行了一个简单的测试

它运行得非常好。现在我只需要使用 spring boot 将其插入即可。

0 投票
0 回答
64 浏览

java - 不同包中两个同名类的相同 XML 文件名有类转换异常

我有两个包,并且两个包在我的项目中都有一些同名的类。我已经使用 spring oxm 成功地为同名的类创建了 XML 文件,但是当我尝试从 XML 转换为类时,它显示以下错误:

用于 XML 编组和解组的 Spring 配置在这里:

编组和解组代码是:

我怎样才能摆脱这个错误?请问有什么建议吗?

0 投票
1 回答
1528 浏览

spring - Spring JMS - 在消息转换之前访问原始消息

我使用消息转换器将 XML 消息从队列转换为 Java 对象,它工作正常。

由于我的 JMSMessageListener 直接获取 POJO,我想知道有什么方法可以访问最初放在队列中的原始 XML。

作为消息跟踪的一部分,我需要维护原始 xml 消息的副本。

spring jms 中是否有任何回调可用,以便我可以在将 xml 消息转换为 POJO 之前对其进行保留?

我的应用程序是 spring boot,我在下面的代码中配置消息转换器

这是监听器代码

0 投票
3 回答
3265 浏览

spring - XStreamMarshaller 的漏洞警告

将 XStreamMarshaller 与 spring 批处理一起使用时,我收到以下消息:

第一次尝试:根据文档,我尝试重置所有权限,但仍然有相同的消息。此外,我在解析 XML 文件时没有安全错误……所以我认为这段代码是行不通的。这是一个代码示例:

第二次尝试:我也尝试过该setSupportedClasses方法,但它也不起作用(我仍然收到漏洞消息并且不支持的类仍然被正确解组):

如何使用 XStreamMarshaller 设置安全权限?

注意:根据这个线程,安全框架是在 1.4.7 中引入的,它仍然不是强制性的....但是 XStream 1.5.0 将是强制性的!

使用的 XStream 版本:1.4.10

使用的 Spring Batch 版本:4.0.1

有关信息,我正在使用 Spring Boot(但我不确定它是否与此处相关)

0 投票
2 回答
9731 浏览

java - 在 Java 9 中使用 Spring JAXB Marshaller 而不定义其他模块的正确方法

为了说明我的问题,我创建了一个小型 Spring Boot 示例应用程序。应用程序的目的是创建一个Jaxb2Marshallerbean。

此代码无法启动,出现以下异常:

我对此异常的不理解是为什么com.sun.xml.internal.bind.v2.ContextFactory尝试实例化?有人建议,我还需要一个运行时依赖项,所以我添加了:

但这只会让我遇到一个不同的例外,试图加载一个不同的类:

这是完整的pom.xml

简单的解决方案当然是添加--add-modules java.xml.ws为 VM 选项,但这正是我试图摆脱的,以使我的应用程序面向未来。我必须使用什么依赖项来解决此问题?或者我是否更改了 bean 配置,以便查找正确的类(而不是来自 的类com.sun.xml...)?

用于下载为 zip 存档的 MCVE 。

0 投票
1 回答
4291 浏览

spring - 为什么 java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.forName(Ljava/lang/String;)Ljava/lang/Class 在部署操作中被抛出?

案例 1:
当我在 E1 环境中使用 Jenkins 部署应用程序时,它可以成功运行。应用程序已部署,Jenkins 控制台输出没有错误。

案例 2:
当我在另一个环境(比如 E2)中使用 Jenkins 部署相同的应用程序时,部署操作失败,但应用程序确实在服务器中部署。虽然我在 Jenkins 控制台中遇到错误。我很困惑,是代码问题还是服务器问题,我该如何解决?
以下是这种情况下的错误:

目标状态:在集群 xCluster 上部署失败
15:53:27 java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.forName(Ljava/lang/String;)Ljava/lang/Class; 15:53:27 at org.springframework.oxm.jaxb.JaxbUtils.(JaxbUtils.java:44) 15:53:27 at org.springframework.oxm.jaxb.Jaxb2Marshaller.createJaxbContext(Jaxb2Marshaller.java:272) 15:53 :27 at org.springframework.oxm.jaxb.AbstractJaxbMarshaller.afterPropertiesSet(AbstractJaxbMarshaller.java:125) 15:53:27 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) 15:53 :27 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) 15:53:27 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory。

0 投票
0 回答
2270 浏览

java - Jaxb2Marshaller 用于具有相同类的多个包

我有 2 个 xsd 模式并从它们生成 java 类,如下所示:

这个模式具有相同的类,这就是我将它们分类到不同包的原因。我尝试为这个包创建 Jaxb2Marshaller,如下所示:

但得到以下异常

我认为我应该为每个包创建单独的编组器,但可能存在如何使用一个编组器进行处理的解决方案。

0 投票
1 回答
809 浏览

jaxb2-maven-plugin - 在 Web 服务响应中返回列表的 Jaxb 绑定

我正在开发一个 jax-ws 客户端,我正在尝试处理作为响应返回的 ArrayList,但我总是有空列表。

返回的列表不为空,我确信 WebService 提供程序正在返回该列表中的数据,我使用 SoapUI 进行了检查。

有生成的客户端相关文件:

由 wsimport 生成的 ArrayOfFacts 类与之前生成的类相同。

我在 SOAPUI 中收到的 XML 响应:

我在测试 jax-ws 客户端时收到的 JSON 响应:

}

事实类:

0 投票
1 回答
450 浏览

spring - 如何在 Spring 集成路由中集成 Jaxb2Marshaller?

  1. 创建了 Jaxb2Marshaller 对象。
  2. 需要将 java POJO 转换为 XML(编组)。

在集成路线中集成 Jaxb2Marshaller 时需要帮助。

代码流程:-

如何在 transform() 步骤中添加 Jaxb2Marshaller?

0 投票
1 回答
76 浏览

java - Jaxb2Marshaller 子类扫描

maven-jaxb2-plugin用来根据 WSDL 生成 Java 类。生成的 Java 类在包下com.myapp.generated,例如,有 Jaxb2 生成的类com.myapp.generated.SomeRequest

我正在扩展它,然后我将它放在不同的包中:

然后使用 Spring Boot (v2.2.9) / spring-oxm (v5.2.8) 我为 Jaxb2Marshaller 指定 Bean 来扫描该包:

不幸的是,在运行时,它没有找到它的问题:

有谁知道是什么原因,以及如何让它扫描指定的包以找到 SomeRequestExtended 类?