首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >告诉OpenEJB忽略MDB

告诉OpenEJB忽略MDB
EN

Stack Overflow用户
提问于 2011-02-02 22:56:19
回答 2查看 2.4K关注 0票数 1

我为最终将消息放入队列的活动编写了单元测试。一旦将消息放入该队列,消息驱动bean就会开始处理。但我不想在单元测试中测试MDB。我如何告诉OpenEJB忽略它们?

我用几个属性设置了OpenEJB:

代码语言:javascript
复制
    p.setProperty(Context.INITIAL_CONTEXT_FACTORY,
            "org.apache.openejb.client.LocalInitialContextFactory");
    p.setProperty("openejb.deployments.classpath.include", ".*");
    p.setProperty("openejb.localcopy", "false");

    // Messaging
    p.put("MyJmsResourceAdapter",
            "new://Resource?type=ActiveMQResourceAdapter");
    // Do not start the ActiveMQ broker
    p.put("MyJmsResourceAdapter.BrokerXmlConfig", "");
    p.put("MyJmsConnectionFactory",
            "new://Resource?type=javax.jms.ConnectionFactory");
    p.put("MyJmsConnectionFactory.ResourceAdapter", "MyJmsResourceAdapter");
    p.put("queue/MyQueue",
            "new://Resource?type=javax.jms.Queue");

我知道我必须设置openejb.deployments.classpath.exclude,但是我找不到正确的值:

代码语言:javascript
复制
    p.setProperty("openejb.deployments.classpath.exclude", "org.example.mdb.*");

例如,我的类名为org.example.mdb.MyMDB

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-22 03:16:44

我的两点意见是:

".*org/example/mdb.*" or ".*org.example.mdb.*"

  • from
  • try ".*org/example/mdb.*" or ".*org.example.mdb.*"
  • from Loading Deployments from the Classpath

注在缺省情况下,这些设置只会在没有找到描述符时影响OpenEJB扫描带注释的组件的jars。如果您希望使用这些设置也过滤掉包含描述符的jars,请将

openejb.deployments.classpath.filter.descriptors

属性设置为true。缺省值为false

票数 1
EN

Stack Overflow用户

发布于 2011-03-20 11:48:44

我们没有这个特性,但是如果你想做一点修改的话,可以很容易地添加它--新的贡献和贡献者总是受欢迎的。

This class会完全按照你的要求去做。还有一些您可能不想要的东西:)它剥离了所有MDB和JMS资源引用(好的部分),并且剥离了所有实体bean和持久性单元引用(您可能不想要的部分)。我们之所以写它,是因为在加载ActiveMQ或OpenJPA时出现了一些调试问题。如果你把它清理干净了,我们很乐意收回它,并将其作为一个特性来支持。

还有一个类似的特性,即strips out all web services。如果设置了特定的系统属性,它将安装在ConfigurationFactory中。在ConfigurationFactory中基本上相同位置使用类似的标志插入"MDB & JMS“删除程序应该很容易

事实上,由于在OpenEJB中,所有注释和XML元数据都被合并到一个对象树(也是一个JAXB树)中,因此您可以在实际部署应用程序之前对其进行非常强大的转换。例如,用模拟版本替换特定的bean。

我认为其中的一件事会成为一个很好的功能,但还没有时间去做。例如,在我们将树发送到部署之前,做一些干净的钩子让人们弄乱它。任何阅读这篇文章的人都欢迎加入并尝试一下(耶,开源!)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4875899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档