JMS侦听器-DefaultSessionService.getOrBindSession(DefaultSessionService.java:218)上的NullPointerException

2020-09-15 14:35发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我在JMS侦听器中遇...

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

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


专家们,

我在JMS侦听器中遇到了Jalosession的问题。 我想在onMessage方法中创建并保存模型。 日志:

  java.lang.NullPointerException
          在de.hybris.platform.servicelayer.session.impl.DefaultSessionService.getOrBindSession(DefaultSessionService.java:218)〜[coreserver.jar :?]
          在de.hybris.platform.servicelayer.session.impl.DefaultSessionService.getCurrentSession(DefaultSessionService.java:53)〜[coreserver.jar :?]
          在de.hybris.platform.servicelayer.session.impl.DefaultSessionService.getAttribute(DefaultSessionService.java:180)〜[coreserver.jar :?]
          在de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.isTransactional(DefaultModelService.java:1084)〜[coreserver.jar :?]
          在de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.save(DefaultModelService.java:634)〜[coreserver.jar :?]
          在my.package.listeners.MyListener.onMessage(MyListener.java:87)〜[classes/:?]

  

关于如何使其工作的任何想法?

编辑:我使用了一种解决方法使其工作:

  this.modelService =(ModelService)Registry.getApplicationContext()。getBean(" modelService");
  

但是我必须在onMessage方法中使用它,因此它看起来很丑且不是最佳的。 任何更好的想法将不胜感激;)

3条回答
Alawn_Xu
2020-09-15 14:57

不起作用的原因是因为这里没有Jalo会话可用。 与Storefront或Webservices不同,侦听器是一个独立程序。 您可以创建一个会话。 可以解决问题

例如,

 会话localSession = getSessionService()。createNewSession();

  

并在finally块中。 关闭会议

  getSessionService()。closeSession(localSession);


  

一周热门 更多>