标签: session-bean

JBoss:InterceptorRegistry的警告EJBTHREE-1246是什么意思?

我目前正在JBoss AS 5.0.0.GA上开发基于EJB 3.0的应用程序,最近在服务器日志中出现了以下警告:

09:50:19,735 WARN  [InterceptorsFactory] EJBTHREE-1246: Do not use InterceptorsFactory with a ManagedObjectAdvisor, InterceptorRegistry should be used via the bean container
09:50:19,735 WARN  [InterceptorsFactory] EJBTHREE-1246: Do not use InterceptorsFactory with a ManagedObjectAdvisor, InterceptorRegistry should be used via the bean container
09:50:19,735 WARN  [InterceptorRegistry] applicable interceptors is non-existent for ...
...

只要将EJB(无状态会话bean)注入到我的JSF Web应用程序的支持bean中,就会生成警告.虽然bean确实可以正常工作,但我仍然想知道警告来自哪里以及我可以做些什么来避免它.

我已经搜索了一下,但没有找到一个好的答案(有人说,bean开发人员不必担心,但它是一个警告,所以我想有一个更好的解决方案):

那么有没有人解释导致警告的原因(对于bean开发人员,而不是应用程序服务器开发人员)以及如何避免它?

更新:我刚刚将JBoss升级到5.0.1.GA(下载,发布说明)但不幸的是仍然出现警告.

jboss warnings session-bean ejb-3.0

20
推荐指数
2
解决办法
2万
查看次数

为什么不使用Session Bean而不是Message Driven Beans?

我想知道,为什么不使用Session Bean而不是Message Driven Beans?

如果您可以从EJB调用远程方法,那么为什么还要使用Message Driven Beans(比会话bean更难开发)来发送/接收消息呢?

Message Driven Beans在哪些场景中变得有用?

ejb session-bean java-ee message-driven-bean

11
推荐指数
1
解决办法
4595
查看次数

处理具有未知异常类的堆栈跟踪

我正在实现一个抛出ApplicationExceptions 的会话bean .这些异常具有链式堆栈跟踪,这些跟踪可能包含客户端上不可用的类的异常.就像是:

@Override
public void doSomethingSpecial(MyObject o) throws MyException {
    try {
        legacySystem.handle(o);
    } catch (LegacyException e) {
        logger.warn(e.getMessage(), e);
        throw new MyException(e);
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,客户端可能会获得一个没有类的异常.这可能导致:

Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
    at sun.proxy.$Proxy0.doSomethingSpecial(Unknown Source)
    at com.myapp.client.Client.main(Client.java:56)
Caused by: java.lang.ClassNotFoundException: MyLegacyException
Run Code Online (Sandbox Code Playgroud)

我不希望客户端知道可以在服务器端抛出的所有可能的异常,但是拥有堆栈跟踪永远不会坏.

你是如何处理这些问题的?Interceptor在将异常发送回客户端时,实现将堆栈跟踪解耦的可行解决方案是什么?但是那时Interceptor应该只处理通过的调用RemoteInterface,因为内部我对整个堆栈跟踪感兴趣.

java exception-handling rmi session-bean java-ee

8
推荐指数
1
解决办法
4055
查看次数

简单CRUD的EJB 3会话Bean设计

我正在编写一个应用程序,它的唯一目的是为了维护数据库中的记录而进行CRUD操作.某些表/实体之间存在关系.我已经看到了创建会话bean实例大多涉及与复杂的业务逻辑/操作,与我没有很多的实体交互.

由于我的应用程序非常基础,会话bean的最佳设计是什么?

我想每个实体有一个会话bean,它有CRUD定义的方法.然后我想到将所有会话bean组合到一个会话bean中.然后我发现这个博客条目很有趣,但我必须承认我并不了解所有这些(什么是ServiceFacade?).

我倾向于会话bean /实体类,但希望听到更多有经验的意见.

谢谢.


哎呀,这是博客链接:http://www.adam-bien.com/roller/abien/entry/generic_crud_service_aka_dao

java ejb session-bean java-ee ejb-3.0

7
推荐指数
1
解决办法
5719
查看次数

会话bean中的静态变量限制

在会话bean代码上使用静态变量是不可能的.这种限制是任意的还是基本的?为什么?

最好的祝福

java distribution session-bean java-ee

5
推荐指数
2
解决办法
1万
查看次数

EJB的简单但良好的模式

对于以下解决方案,您会建议一个好的,实用但简单的模式:

  • HTML + JSP(作为视图/演示文稿)
  • Servlet(控制器,请求,会话处理)
  • EJB(持久性,businesslogic)
  • MySQL DB

是否有必要使用自己的DAO层来保持持久性?我使用JPA将对象持久保存到我的数据库中.

我应该从EJB中撤销业务逻辑吗?所有在线资源都告诉我不同​​的事情并让我感到困惑......

java design-patterns session-bean ejb-3.0

4
推荐指数
2
解决办法
2322
查看次数

刷新JSF 2.0中的托管会话bean

在我将一些数据提交到数据库之后,我希望我的会话bean自动刷新自己以反映最近提交的数据.在JSF 2.0中使用托管会话bean时,如何实现这一目标?

目前,我必须重新启动Web服务器才能清除会话并重新加载.

jsf javabeans session-bean managed-bean

2
推荐指数
1
解决办法
1万
查看次数

无状态会话Bean - 停止多个呼叫

所以我从BalusC的这篇文章中读到了如何阻止无状态会话bean在被JSF访问时不断地颠簸数据存储(例如DB)(这可能会/将进行多次调用)所以我已经实现了我的代码我想这是符合BalusC所发布的精神(以及我见过的关于这个问题的"最佳实践"的其他论坛帖子).

我的无状态会话bean看起来像这样:

@Stateless
@Named("productsService")
public class ProductService {

    private static boolean changed = true;

    private List<Product> products;

    private long count;

    @PersistenceContext(name = "myPU")
    private EntityManager em;

    @Inject
    private Product product;

    public ProductService() {
    }

    private void productRecordsFromDB() {
        products = em.createNamedQuery("Product.getAll", Product.class).getResultList();
        Object o = em.createNamedQuery("Product.getCount", Product.class).getSingleResult();
        count = ((Long) o).longValue();
    }

    public void addProduct() {
        synchronized (ProductService.class) {
            changed = true;
            em.persist(product);
        }
    }

    public long countProducts() {
        return count;
    }

    public void removeProduct(Product p) …
Run Code Online (Sandbox Code Playgroud)

jpa session-bean ejb-3.1

0
推荐指数
1
解决办法
1827
查看次数