【问题标题】:Stateless is not working in AS 7无状态在 AS 7 中不起作用
【发布时间】:2012-11-27 17:51:59
【问题描述】:

我明白了:

[org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/PontoComentario].[jsp]] (http--0.0.0.0-8080-2) Servlet.service() for servlet jsp threw exception: org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:149) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:195) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:185) [hibernate-core-4.0.1.Final.jar:4.0.1.Final

在访问 jsp 之后。我的 EMFactory 是这样的:

import javax.ejb.Stateless;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.persistence.EntityManager;
import javax.transaction.UserTransaction;

@Stateless 
public class EMFactory {

public static EntityManager getEntityManager() {

    try {
        Context ctx = new InitialContext();
        return (EntityManager) ctx.lookup("java:comp/env/PontoComentario/EntityManager");
    } catch (Exception e) {
        return null;
    }
}

public static UserTransaction getUserTransaction() {

    try {
        Context ctx = new InitialContext();
        return (UserTransaction) ctx.lookup("java:comp/UserTransaction");
    } catch (Exception e) {
        return null;
    }
}   
}

我不知道为什么会这样,我使用的是 AS 5,它运行良好。如果您需要任何其他代码,请询问。

这是在 jsp 中使用的 scriptlet 的一个可悲部分:

    <%
      UsuarioDao dao = new UsuarioDao();
  List<Usuario> lista;
      if (usuarioLogado.getAdministrador()) {
        lista = dao.getListOrder("codigo");
} else {
        lista = dao.getListCond("obj.administrador = true order by obj.codigo");

...等等。

【问题讨论】:

    标签: java ejb jboss7.x stateless


    【解决方案1】:

    你为什么不简单地用注解注入对 EntityManager 的引用:

    @PersistenceContext EntityManager em;

    您真的是从 JSP 访问您的 SLSB 吗?不是来自 servlet 控制器?

    【讨论】:

    • 是的...我要在哪里发帖。
    猜你喜欢
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    相关资源
    最近更新 更多