Jakarta ee javax.ejb.TransactionRolledbackLocalException

Jakarta ee javax.ejb.TransactionRolledbackLocalException,jakarta-ee,ejb,glassfish-3,Jakarta Ee,Ejb,Glassfish 3,我的webapp(对我来说)有一个相当困难的问题。以下是glassfish的输出: INFO: ------------Czy pacjent BEAN przed getNazwaKonta --------------- INFO: ------------Czy pacjent BEAN PO getNazwaKonta --------------- INFO: ------------Czy pacjent ENDPOINT przed pobierz po loginie -----

我的webapp(对我来说)有一个相当困难的问题。以下是glassfish的输出:

INFO: ------------Czy pacjent BEAN przed getNazwaKonta ---------------
INFO: ------------Czy pacjent BEAN PO getNazwaKonta ---------------
INFO: ------------Czy pacjent ENDPOINT przed pobierz po loginie ---------------
INFO: ------------pobierzPoLoginie LocalFACADE PRZED ---------------
WARNING: EJB5184:A system exception occurred during an invocation on EJB konto, method: public pl.karta.epacjent.entities.Konto pl.karta.epacjent.facades.KontoFacade.pobierzPoLoginie(java.lang.String)
WARNING: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean
    at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:5071)
    at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4906)
    at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2045)
    at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1994)
    at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:222)
    at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)
    at $Proxy554.pobierzPoLoginie(Unknown Source)
    at pl.karta.epacjent.endpoints.Endpoint.czyPacjent(Endpoint.java:55)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1052)
    at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1124)
    at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:4180)
    at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5368)
    at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5348)
    at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:214)
    at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)
    at $Proxy556.czyPacjent(Unknown Source)
    at pl.karta.epacjent.beans.LoginBean.czyPacjent(LoginBean.java:52)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at javax.el.BeanELResolver.invokeMethod(BeanELResolver.java:779)
    at javax.el.BeanELResolver.invoke(BeanELResolver.java:528)
    at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:257)
    at com.sun.el.parser.AstValue.getValue(AstValue.java:134)
    at com.sun.el.parser.AstValue.getValue(AstValue.java:183)
    at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:224)
    at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
    at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:413)
    at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:297)
    at com.sun.faces.renderkit.html_basic.OutputLinkRenderer.encodeChildren(OutputLinkRenderer.java:124)
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1757)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:402)
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.IllegalStateException: Attempting to execute an operation on a closed EntityManagerFactory.
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.verifyOpen(EntityManagerFactoryDelegate.java:305)
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:276)
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:294)
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:279)
    at com.sun.enterprise.container.common.impl.EntityManagerWrapper._getDelegate(EntityManagerWrapper.java:208)
    at com.sun.enterprise.container.common.impl.EntityManagerWrapper.createNamedQuery(EntityManagerWrapper.java:565)
    at pl.karta.epacjent.facades.KontoFacade.pobierzPoLoginie(KontoFacade.java:26)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1052)
    at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1124)
    at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:5388)
    at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:619)
    at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:800)
    at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:571)
    at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(SystemInterceptorProxy.java:162)
    at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:144)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:861)
    at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:800)
    at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:370)
    at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5360)
    at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5348)
    at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:214)
    ... 64 more
我的代码是:

豆子

端点

@Stateful
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) 
public class Endpoint implements EndpointLocal{
@EJB(beanName = "konto")
private KontoFacadeLocal kontofacade;
private Konto konto = new Konto();
@Override
public boolean czyPacjent(String nazwa) {
System.out.println("------------Czy pacjent ENDPOINT przed pobierz po loginie ---------------");
konto = kontofacade.pobierzPoLoginie(nazwa);
System.out.println("------------Czy pacjent ENDPOINT PO pobierz po loginie ---------------");
for (PoziomDostepu p : konto.getPoziomDostepuCollection()) {
if (p instanceof Pacjent) {
return true;
}
}
return false;
}
正面:

@Stateless(name="konto")
public class KontoFacade extends AbstractFacade<Konto> implements KontoFacadeLocal {
@PersistenceContext(unitName = "epacjentPU")
private EntityManager em;
@Override
public Konto pobierzPoLoginie(String login) {
System.out.println("------------pobierzPoLoginie LocalFACADE PRZED ---------------");
TypedQuery tq = em.createNamedQuery("Konto.findByLogin", Konto.class);
tq.setParameter("login", login);
System.out.println("------------pobierzPoLoginie LocalFACADE PO (przed returnem) ---------------");
return (Konto) tq.getSingleResult();
}
@无状态(name=“konto”)
公共类KontoFacade扩展AbstractFacade实现Kontofacadolocal{
@PersistenceContext(unitName=“epacjentPU”)
私人实体管理者;
@凌驾
公共Konto pobierzPoLoginie(字符串登录){
System.out.println(“------------pobierzPoLoginie LocalFACADE PRZED-----------------”;
TypedQuery tq=em.createNamedQuery(“Konto.findByLogin”,Konto.class);
设置参数(“登录”,登录);
System.out.println(“------------pobierzPoLoginie LocalFACADE PO(przed returnem)-------------”;
返回(Konto)tq.getSingleResult();
}
如果有任何信息遗漏,请告诉我。我知道很少有东西是用波兰语写的,但只有
System.out.println()
让我知道它停在哪里。
感谢所有帮助

检查stacktrace,以下是问题的原因:

Caused by: java.lang.IllegalStateException: Attempting to execute an operation on a closed EntityManagerFactory.
检查您的数据库连接和持久性配置,如果有任何不正确的配置可能是原因

Glassfish 3.1还有一个众所周知的bug,请参见以下链接:


因此,如果您的持久性配置一切正常,请尝试更改GF版本,看看会发生什么。

当我取消部署应用程序时,出现了另一个关于错误SQL查询的异常(未找到列)。这就是问题所在,非常感谢您的帮助:)
Caused by: java.lang.IllegalStateException: Attempting to execute an operation on a closed EntityManagerFactory.