1

我一直在努力尝试在 netbeans 中测试一个超级简单的 EJB 项目。我已经尝试了我的 java 书中的几个示例,还有一个我在网上找到的更简单的示例(http://javadude.wordpress.com/2010/02/22/tutorial-most-simple-test-application-for-embedded-glassfish -netbeans-哈德森/)。这是一个超级基本的 EJB,只添加了两个数字.. 就是这样!!它运行良好,但无论我如何尝试测试它,都没有任何效果。更令人费解的是,我在测试它的两台不同的笔记本电脑上遇到了两个不同的错误。显然我做错了什么......任何建议都会非常感激。

我得到的一个错误是:

测试用例:testAddNumbers(bean.MyBeanTest):导致错误没有可用的 EJBContainer 提供程序:没有找到提供程序名称。

javax.ejb.EJBException:没有可用的 EJBContainer 提供程序:没有找到提供程序名称。

另一个是:


严重:部署应用程序时出现异常 java.lang.IllegalArgumentException:无效的 ejb jar [WebTestEmb.jar]:它包含零 ejb。注意: 1. 一个有效的 ejb jar 至少需要一个会话、实体(1.x/2.x 样式)或消息驱动 bean。2. EJB3+实体bean(@Entity)是POJO,请将它们打包为库jar。3. 如果 jar 文件包含使用 EJB 组件级注解(@Stateless、@Stateful、@MessageDriven、@Singleton)注解的有效 EJB,请检查 server.log 以查看注解是否被正确处理。


显然,我的项目中确实有一个 ejb。它完全按照我上面发布的网址中的说明构建。

谢谢!

4

3 回答 3

1

我一直在努力尝试在 netbeans 中测试一个超级简单的 EJB 项目。我已经尝试了我的 Java 书中的几个示例,还有一个我在网上找到的更简单的示例

使用EJBContainerAPI(在您的睾丸中启动嵌入式 EJB 容器)是 Java EE 6 的方式(Adam Bien 在将EJB 3.1 容器嵌入您的单元测试 - 引导时间:5 秒中对此进行了博文)。

话虽如此,您可能会对以下链接感兴趣:

您使用的是哪个版本的 GlassFish?如果您没有使用最新的 3.0.1,我建议您试一试。

于 2010-08-21T23:38:27.337 回答
0

无论我为 EJBContainer.MODULES 的属性写什么,它都不想工作。这个模块的解决方法也只是黑客攻击。我不认为它应该以这种方式工作。在 glassfish 修复此问题之前,我将尝试 OpenEJB。

虽然我现在对玻璃鱼有点失望。他们说一切都是开箱即用的,但事实并非如此。没有可设置的选项,并且错误消息什么也没说...

于 2010-08-25T10:37:26.420 回答
0

没关系,看起来我终于让它工作了。我不敢相信这花了一周的时间才弄清楚!

添加:

地图属性 = new HashMap(); properties.put(EJBContainer.MODULES, new File("C:\Documents and Settings\tiv\My Documents\NetBeansProjects\WebTestEmb\build\web\WEB-INF\classes"));

然后在 createEJBContainer() 调用中使用这些属性来修复错误。

于 2010-08-23T21:04:07.880 回答