用JUNIT对 ejb3 进行单元测试,有两种方式:

1、通过调用远程接口,去调用在应用服务器的EJB容器中运行的EJB。

2、EJB3.1以后,EJB LITE模式可以没有远程接口,这时只能通过第三方工具创建EJB embeddable container,下面是用openejb去创建EJB容器进行junit测试。

环境配置:

环境:jboss7.1 + EJB3.1 + jUNIT4.8.1+h2数据库(jboss7.1自带的,可以下载一个服务端,很小很简单很方便)

项目: maven3 + eclipse3.7.

1、pom.xml配置:

<dependency>
         <groupId>org.hibernate</groupId>
         <artifactId>hibernate-core</artifactId>
         <scope>provided</scope>
         <version>4.1.2</version>
        </dependency>
        <dependency>
         <groupId>org.hibernate</groupId>
         <artifactId>hibernate-entitymanager</artifactId>
         <scope>provided</scope>
         <version>4.1.2</version>
        </dependency>
        <dependency>
         <groupId>org.apache.openejb</groupId>
         <artifactId>javaee-api</artifactId>
         <version>6.0-3</version>
         <type>zip</type>
        </dependency>
        <dependency>
   <groupId>org.apache.openejb</groupId>
   <artifactId>openejb-core-hibernate</artifactId>
   <version>4.0.0-beta-2</version>
   <type>pom</type>
   <scope>test</scope>
     </dependency>

<dependency>
         <groupId>jboss</groupId>
         <artifactId>jboss-common</artifactId>
         <version>4.2.2.GA</version>
        </dependency>

2、ejb-test-configure.properties配置:

DataSource=new://Resource?type=DataSource
DataSource.JdbcDriver=org.h2.Driver
DataSource.JdbcUrl=jdbc:h2:tcp://localhost/~/test
DataSource.UserName=sa
DataSource.Password=sa

3. 创建EJB3容器:

try {
      Properties props = new Properties();
      props.load(Thread.currentThread().getContextClassLoader()
                    .getResourceAsStream("ejb-test-configure.properties"));
      container = EJBContainer.createEJBContainer(props);
      
      this.ctx = container.getContext(); 
       }  catch (Exception e) {
             e.printStackTrace();
         }

4、查找EJB:

protected <T> T getEJBBean(final Class<T> clz) {
     
        final String jndiName = "java:global/{项目名称}/"+clz.getSimpleName()+"Impl!"+clz.getName();
        return (T) this.ctx.lookup(jndiName);

}

Junit test EJB3相关推荐

  1. gwt-2.8.2下载_GWT EJB3 Maven JBoss 5.1集成教程

    gwt-2.8.2下载 大家好, 在本文中,我们将演示如何正确集成GWT和EJB3 ,以实现示例项目,使用maven进行构建并将其部署在JBoss 5.1应用服务器上. 实际上,您可以轻松地更改mav ...

  2. GWT EJB3 Maven JBoss 5.1集成教程

    大家好, 在本文中,我们将演示如何正确集成GWT和EJB3 ,以实现示例项目,使用maven进行构建并将其部署在JBoss 5.1应用服务器上. 实际上,您可以轻松地更改maven构建文件中的依赖关系 ...

  3. Jboss EJB3.0实例教程

    Jboss EJB3.0实例教程 第一章 前言............................................................................. ...

  4. Jboss EJB3.0 实例教程

    第一章 前言.............................................................................................. ...

  5. JUnit单元测试依赖包构建路径错误解决办法

    JUnit单元测试依赖包构建路径错误解决办法: 选中报错的项目文件夹→右击选择属性(ALT+Enter)→java构建路径→库→添加库→JUnit→选择合适的Junit库版本.

  6. Junit的安装与使用

    一.简介: JUnit是一个Java语言的单元测试框架.它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个. JUnit有它 ...

  7. JUnit基础及第一个单元测试实例(JUnit3.8)

    JUnit基础及第一个单元测试实例(JUnit3.8) 单元测试 单元测试(unit testing) ,是指对软件中的最小可测试单元进行检查和验证. 单元测试不是为了证明您是对的,而是为了证明您没有 ...

  8. junit集成Hamcrest测试集合中某个属性是否包含特定值

    junit已经集成Hamcrest但是还是需要引用hamcrest-library,不然只有基本方法,高级的没有 <dependency> <groupId>junit< ...

  9. 【Junit】BeforeClass、Before、After、AfterClass

    在JUnit4中,添加了Annotations来标记测试. 测试方法由@Test 标记说明.使用标记的好处是你不用将所有测试方法命名为testFoo()这种形式. 执行顺序: @BeforeClass ...

最新文章

  1. 看完就忘!看完就忘!我感觉我要废了
  2. java_IO_File(3)_遍历、递归
  3. Linux中查看负载
  4. 【MFC系列-第10天】非模式对话框开发
  5. 1036 跟奥巴马一起编程(15 分)
  6. Node.js listen EADDRINUSE 错误解决 How to solve nodejs Error: listen EADDRINUSE
  7. Leetcode每日一题:111.minimum-depth-of-binary-tree(二叉树的最小深度)
  8. background 覆盖 内容_web开发:利用background制作拉窗帘效果
  9. nodejs首个框架开发(先只发个连接,有空再写)
  10. 2021华为杯数学建模获奖经验分享
  11. 破解三大安防视频痛点,看华为4大硬核视频上云技术
  12. vim/Gvim安装插件
  13. Vue3前端项目加载使用腾讯地图
  14. 移动端应用APP的分类(WebApp、HybridApp、 NativeApp)
  15. 最简单ListView显示联系人姓名和电话号码
  16. 计量经济学之时间序列的平稳性、单位根检验、协整检验、时间序列数据的一般处理流程
  17. 利用supervisor对服务进行管理
  18. vivado下microblaze程序固化下载
  19. pycharm无法关闭的高亮显示原因
  20. 【ARCore】Android ARCore 简介 ( AR 增强现实技术简介 | Android 平台常用的 AR 技术 | ARCore 相关资料收集 )

热门文章

  1. 四川计算机单招有哪些学校,2018四川单招学校名单有哪些【最新版】
  2. 王者荣耀服务器维护9月27,王者荣耀体验服9月27日更新维护公告 S18赛季正式开启...
  3. foxmail 联系人创建组群
  4. 无法连接到服务器XX;SQLServerAgent无法启动
  5. C#.net用QQ服务邮箱群发邮件
  6. c语言编程使结果呈现爱心,c语言编程使结果呈现爱心
  7. 尼葛洛庞帝:《数字化生存》
  8. 给大家推荐一款由PHP+MYSQL搭建的货运租车出行源码
  9. Excel中利用OFFSET函数解决很多个分块的一次性转置问题(非纯手动)
  10. java编写的控制台版微信零钱明细系统,1.面向过程版,2.面向对象版