我一直在努力尝试在netbeans中测试一个超级简单的EJB项目。我在我的java书中尝试了几个例子,我在网上发现了一个更简单的例子(http://javadude.wordpress.com/2010/02/22/tutorial-most-simple-test-application-for-embedded-glassfish-netbeans-hudson/)。这是一个超级基本的EJB,只添加两个数字..就是这样!它运行良好,但无论我如何尝试测试它,没有任何作用。更令人费解的是,我在两台不同的笔记本电脑上得到了两个不同的错误。显然我做的事情非常错误...... 任何建议都会受到如此赞赏。
Testcase:testAddNumbers(bean.MyBeanTest):导致错误 没有可用的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以查看是否正确处理了注释。
谢谢!
答案 0 :(得分:1)
我一直在努力尝试在netbeans中测试一个超级简单的EJB项目。我从我的java书和even simpler example i found online
中尝试了几个例子
使用EJBContainer
API(在睾丸中启动嵌入式EJB容器)是Java EE 6的发展方向(Adam Bien在Embedding EJB 3.1 Container Into Your Unit Tests - Boot Time: 5 Seconds中对此进行了博客)。
话虽如此,您可能会对以下链接感兴趣:
您使用的是什么版本的GlassFish?如果您没有使用最新的3.0.1,我建议您尝试一下。
答案 1 :(得分:0)
没关系,看起来我终于开始工作了。我不敢相信这花了一个星期才弄明白!
中加入:
Map properties = new HashMap(); properties.put(EJBContainer.MODULES,新文件(“C:\ Documents and Settings \ tiv \ My Documents \ NetBeansProjects \ WebTestEmb \ build \ web \ WEB-INF \ classes”));
然后在createEJBContainer()调用中使用这些属性修复错误。
答案 2 :(得分:0)
无论我为EJBContainer.MODULES的属性写什么,它都不想工作。 此模块的解决方法也只是黑客攻击。我不认为它应该以这种方式工作。 在这个时候,直到这将在glassfish中修复,我将尝试OpenEJB。
我现在对玻璃鱼有点失望。他们说每个人都开箱即用,而事实并非如此。没有选项可以设置,错误消息什么也没说......