出现ClassFormatError的原因:使用事务性注释的Spring应用程序中LocalVariableTable中的无效长度

时间:2018-10-05 11:09:36

标签: java spring aop spring-transactions

我有一个Java Spring课程:

@Service(value = "problematicClass")
public class ProblematicClass {

    private static final String PREFIX = "PREF_";
    private static Logger logger = Logger.getLogger(ProblematicClass.class);

    @Autowired
    Helper helper;

    @Autowired
    dzetaDAO dzetaDAO;

    @Autowired
    ksiDAO ksiDAO;

    @Autowired
    deltaDAO deltaDAO;

    @Autowired
    gammaDAO gammaDAO;

    @Autowired
    betaDAO betaDAO;

    @Autowired
    alfaDAO alfaDAO;

    @Resource(name = "ksiService")
    protected ksiService ksiService;

    @Resource(name = "epsServiceBR")
    public epsServiceBR epsServiceBR;


    @Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED)
    public void createAndDeleteksis(int thetha) throws Exception {

      // do stuff

    }

    private void createksi(int id) throws Exception {
       // do other stuff
    }

    private void deleteksi(int id) throws Exception {
        // do yet another stuff
    }

}

当类的编译成功时,使用该类运行应用程序时出现以下错误:

  

org.springframework.beans.factory.BeanCreationException:创建名称为“ scopedTarget.betaDAO”的bean时出错:持久性依赖项注入失败

  

java.lang.ClassFormatError:无效的长度65520 in   类文件../ ProblematicClass

中的LocalVariableTable

我已经研究了类的字节码,但是找不到本地LocalTables,它应该太长了。

这个问题可能是由于Spring注释的某些错误使用造成的吗?我已经尝试过在没有使用过一些bean注入的情况下编译代码,但是问题总是出现在另一个bean中。

0 个答案:

没有答案