【发布时间】:2026-02-01 22:55:01
【问题描述】:
由于我们调用的是旧版 API,我们需要使用 JAXB 解组收到的数据。
但在 2 周内,整个过程确实需要 2-3 倍的时间。 这方面的代码没变,依赖一样,docker base image也是一样的。
在我的本地开发环境中,我没有问题。该问题仅在我们的 openshift 服务器上可见。
我们调用的端点的同事在他们的性能指标上没有发现任何差异。
这基本上是代码:
JAXBContext jaxbContext = jaxbContexts.get(ProductsResponse.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
ProductsResponse result = unmarshaller.unmarshal(new StringReader(xmlStr));
上下文被缓存,createUnmarshaller 应该是一个轻量级操作,如此处所述JAXB creating context and marshallers cost。
但是大部分时间都在通过创建 SAXParser 进行解组时丢失
...
我不知道是什么导致了这个问题。我们目前正在努力用支持 JAXB 注释的 Jackson XMLMapper 替换此处的 JAXB。但由于 API 中有一些奇怪的结构,我们无法掌握,这会导致更多问题。
商务人士越来越不耐烦了。我不知道...
【问题讨论】:
标签: java spring-boot jaxb sax