如何在jar中覆盖.class文件?

2020-09-19 01:41发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我正在使用Olingo库...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我正在使用Olingo库将Hybris与C4C系统集成。

XmlPropertyConsumer.class类引起的异常位于sapcoreodata扩展的olingo-odata2-core-2.0.8.jar中。

下面是堆栈跟踪:

 严重:路径为[/extranetstorefront]的上下文中Servlet [DispatcherServlet]的Servlet.service()抛出异常[请求处理失败; 嵌套的异常是org.apache.olingo.odata2.api.ep.EntityProviderException:发生了'EdmSimpleTypeException'类型的异常。]根本原因
  org.apache.olingo.odata2.api.edm.EdmSimpleTypeException:元数据约束'[Nullable = true,Precision = 0,Scale = 14]'与文字'368.32100000000000'不匹配。
          在org.apache.olingo.odata2.core.edm.EdmDecimal.internalValueOfString(EdmDecimal.java:107)
          在org.apache.olingo.odata2.core.edm.AbstractSimpleType.valueOfString(AbstractSimpleType.java:91)
          在org.apache.olingo.odata2.core.ep.consumer.XmlPropertyConsumer.convert(XmlPropertyConsumer.java:206)
          在org.apache.olingo.odata2.core.ep.consumer.XmlPropertyConsumer.readStartedElement(XmlPropertyConsumer.java:192)
          在org.apache.olingo.odata2.core.ep.consumer.XmlPropertyConsumer.readStartedElement(XmlPropertyConsumer.java:185)
          在org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readProperties(XmlEntryConsumer.java:591)
          在org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readContent(XmlEntryConsumer.java:544)
          在org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.handleStartedTag(XmlEntryConsumer.java:137)
          在org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readEntry(XmlEntryConsumer.java:89)
          在org.apache.olingo.odata2.core.ep.consumer.XmlFeedConsumer.readFeedData(XmlFeedConsumer.java:109)
          在org.apache.olingo.odata2.core.ep.consumer.XmlFeedConsumer.readFeed(XmlFeedConsumer.java:81)
          在org.apache.olingo.odata2.core.ep.consumer.XmlEntityConsumer.readFeed(XmlEntityConsumer.java:62)
          在org.apache.olingo.odata2.core.ep.AtomEntityProvider.readDeltaFeed(AtomEntityProvider.java:366)
          在org.apache.olingo.odata2.core.ep.AtomEntityProvider.readFeed(AtomEntityProvider.java:359)
          在org.apache.olingo.odata2.core.ep.ProviderFacadeImpl.readFeed(ProviderFacadeImpl.java:166)
          在org.apache.olingo.odata2.api.ep.EntityProvider.readFeed(EntityProvider.java:708)
          在de.hybris.platform.sap.core.odata.util.ODataClientService.readFeed(ODataClientService.java:191)
          在com.saintgobain.extranetc4caddon.controllers.pages.ExtranetClaimsController.getClaimDetails(ExtranetClaimsController.java:156)

  

现在,为了解决此异常,我需要重写XmlPropertyConsumer.readStartedElement(...)方法。

有人可以为此引导我吗?

提前谢谢!

1条回答
蓋茨
2020-09-19 02:24

您好,您可以使用例如Spring AOP。 像这样:

  @Around(" execution(* org.apache.olingo.odata2.core.ep.consumer.XmlPropertyConsumer + .readStartedElement(..))")
      公共对象readStartedElement()抛出Throwable
  {
  <覆盖代码>
  }
  

一周热门 更多>