首页 > 解决方案 > 用户事务开始方法期间抛出异常

问题描述

Java中有一个代码块(一个循环),它使用用户事务来验证事务。用户事务对象在循环之前声明。此方法用于验证某些事情。它工作正常,但现在经常出现问题 例如:如果用户传递了四个值,则三个成功验证工作正常,其中一个失败,屏幕上没有任何显示。验证日志,它显示如下。我正在使用 ejb Hiberante Persistence 并部署在 JBoss 中。

     Unexpected exception occurred
java.lang.NullPointerException
    at ut.begin(); 
    at sun.reflect.GeneratedMethodAccessor389.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:122)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
    at org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrapper.invokeNext(ContainerMethodInvocationWrapper.java:72)
    at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(InterceptorSequencer.java:76)
    at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(InterceptorSequencer.java:62)
    at sun.reflect.GeneratedMethodAccessor289.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.java:174)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 

代码:下面的代码是有状态会话bean的Bean类:

public Collection<Acknowledgement> goodTransfer(String destLoc,
        String destUT, Collection objectList, boolean getDetails,
        boolean valid, boolean commit, String userId, String pass)
        throws Exception {

    List<Acknowledgement> acks = null;

    if (objectList != null) {
        try {
            ut.begin();
    if (valida) {
                try {
                    acks = GoodUtils.getInstance().validate(userId,
                        destLoc, destUT, objectList,
                        userName, password);
                } catch(GoodException e) {
                    log.error("Transfer failed", e);
                    acks = new ArrayList<Acknowledgement>(1);
                    Acknowledgement ack = new AmcAcknowledgement(false,
                        e);

                    acks.add(ack);
                }
     else {
        throw new Exception(Exception.MISSING_VLUES);
    }


    return acks;        }

请帮忙

标签: hibernatejakarta-eejbossejbjta

解决方案


推荐阅读