gpt4 book ai didi

java - @Autowired 不适用于从非 spring jpos 库实现的类

转载 作者:行者123 更新时间:2023-12-02 01:04:23 27 4
gpt4 key购买 nike

我在 Spring Boot 应用程序中使用带有事务管理器的 jpos Q2 Server,但是当我尝试在从 Jpos TransactionParticipant 接口(interface)实现的类中实现 DI 时,它给了我空指针异常。

根据我的理解,我已经尝试了 IoC Spring Boot 中可能存在的所有选项。看来 TransactionParticipant 第三方库我无法在 Spring IoC/DI 模块中注册它。

package com.fonepay.iso;

@Service("processIsoTxn")
public class ProcessIsoTxn implements TransactionParticipant{
@Autowired
private CbsTxnService cbsTxnService;

@Override
public int prepare(long id, Serializable context) {
Context ctx = (Context) context;
try{

ISOMsg request = (ISOMsg) ctx.get("REQUEST");

//Call local processing Message
//CbsTxnService cbsTxnService = new CbsTxnServiceImpl();
ISOMsg response = cbsTxnService.createFinancialTxn(request);

ctx.put("RESPONSE", response);
return PREPARED;

}catch(Exception ex){
System.out.println("Process Iso Txn | error | "+ex);
}

return 0;
}
}
package com.fonepay.service.impl;

@Service("cbsTxnService")
@Transactional
public class CbsTxnServiceImpl implements CbsTxnService{
public ISOMsg createFinancialTxn(ISOMsg isoMsg) {...}
}
@SpringBootApplication
@ComponentScan("com.fonepay")
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
public class JposserverApplication {

public static void main(String[] args) {
SpringApplication.run(JposserverApplication.class, args);
}
}

我不断收到 java.lang.NullPointerException 异常ISOMsg 响应 = cbsTxnService.createFinancialTxn(request);

最佳答案

  • 试试这个,替换@Autowired注释
  • 尝试使用构造函数
@Service("processIsoTxn")
public class ProcessIsoTxn implements TransactionParticipant{

private CbsTxnService cbsTxnService;

public ProcessIsoTxn (CbsTxnService cbsTxnService) {
this.cbsTxnService = cbsTxnService;
}

关于java - @Autowired 不适用于从非 spring jpos 库实现的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57745706/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com