如何通过预定插件以编程方式在 jBilling 中创建付款?问题是我想创建一个不链接到任何发票的付款,所以我尝试使用
applyPayment(PaymentDTOEx payment, Integer invoiceId, Integer executorUserId)
发票Id=null,但会导致错误:
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
最初我尝试:
IPaymentSessionBean psb = Context.getBean(Context.Name.PAYMENT_SESSION);
psb.applyPayment(new PaymentDTOEx(paymentWS), null, userID);
后来我之前添加了“userbl.webServicesAuthenticate(user, pass)”,但结果是一样的。
我认为我错过了一些重要的事情,而且可能做得完全错误。
最佳答案
我以前从未使用过 jBilling,但经过一番谷歌搜索后,它似乎使用 Spring 来管理事务等。
从您引用的错误来看,您似乎没有打开 Hibernate session 。如果您使用的是 Web 框架(例如 Spring MVC),则通常使用 servlet 过滤器透明地为您管理 Hibernate session 生命周期。
如果您要通过预定服务执行付款,则您可能需要在服务中自行打开和关闭 Hibernate session 。有一些文档here描述了如何使用 Spring 以编程方式执行此操作。
另请查看@Transactional
注解。它可能就像用它注释您的预定作业方法一样简单。
关于java - j计费 : How to create payment programmatically?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20147518/