`
jff
  • 浏览: 93864 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

EJB3嵌入式:J2SE工程调用

阅读更多

自:http://hi.baidu.com/jt618/blog/item/e495164f69a47c33aec3ab2f.html

 

在JOBoss官网下载嵌入式开发包:

jboss-EJB-3.0_Embeddable_ALPHA_9

将jboss-EJB-3.0_Embeddable_ALPHA_9\bin\开发包导入到J2SE工程的Bin目录下

将jboss-EJB-3.0_Embeddable_ALPHA_9\ conf\开发包导入到J2SE工程的src目录下

将src目录引入数据源引用:META-INF\ persistence.xml

<persistence>

    <persistence-unit name="titan">

       <jta-data-source>java:/DefaultDS</jta-data-source>

       <properties>

       <property name="hibernate.hbm2ddl.auto" value="create-drop"/>

       </properties>

    </persistence-unit>

</persistence>

EntityBean(name=Cabin)

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.Table;

@Entity

@Table(name="TEST_CABIN")

public class Cabin implements java.io.Serializable{

    private Integer id;

    private String name;

    private Integer deskLevel;

    @Id

    @GeneratedValue(strategy=GenerationType.AUTO)

    public Integer getId() {

       return id;

    }

    public void setId(Integer id) {

       this.id = id;

    }  

    @Column(name="SYS_NAME")

    public String getName() {

       return name;

    }

    public void setName(String name) {

       this.name = name;

    }  

    @Column(name="SYS_DESKLEVEL")

    public Integer getDeskLevel() {

       return deskLevel;

    }

    public void setDeskLevel(Integer deskLevel) {

       this.deskLevel = deskLevel;

    }  

}

//本地调用接口;

import javax.ejb.Local;

@Local

public interface CabinDAOLocal {

    public int create (Cabin cabin);

    public Cabin findById(int key);

}

//远程调用接口;

import javax.ejb.Remote;

@Remote

public interface CabinDAORemote {

    public int create (Cabin cabin);

    public Cabin findById(int key);

}

//接口实现类:

import javax.ejb.Stateless;

import javax.persistence.EntityManager;

import javax.persistence.PersistenceContext;

public @Stateless class CabinDAOBean implements CabinDAORemote,CabinDAOLocal {

    @PersistenceContext

    private EntityManager em;

    public int create(Cabin cabin) {

       em.persist(cabin);

       return cabin.getId();

    }

    public Cabin findById(int key) {

        Cabin cabin=em.find(Cabin.class,key);     

       return cabin;

    }

}

//本地调用测试

import javax.naming.InitialContext;

import org.jboss.ejb3.embedded.EJB3StandaloneBootstrap;

import com.j2se.Cabin;

import com.j2se.CabinDAOLocal;

public class TestJ2seLocalMain {  

    public static void main(String [] args) throws Exception

    {

       EJB3StandaloneBootstrap.boot(null);

       EJB3StandaloneBootstrap.scanClasspath();//扫描环境变量

       InitialContext ict=new InitialContext();

       CabinDAOLocal cabindaoremote=(CabinDAOLocal)ict.lookup("CabinDAOBean/local");

       Cabin cabin=new Cabin();

       cabin.setDeskLevel(1);

       cabin.setName("hubei");    

       int key=cabindaoremote.create(cabin);

       Cabin cabin1=cabindaoremote.findById(key);

       System.out.println(cabin1.getName());

       System.out.println(cabin1.getId());

       System.out.println(cabin1.getDeskLevel());

    }

}

 

//远程调用测式

import javax.naming.InitialContext;

import org.jboss.ejb3.embedded.EJB3StandaloneBootstrap;

import com.j2se.Cabin;

import com.j2se.CabinDAORemote;

public class TestJ2seRemoteMain {

    public static void main(String [] args) throws Exception

    {EJB3StandaloneBootstrap.boot(null);

       EJB3StandaloneBootstrap.scanClasspath();

       InitialContext ict=new InitialContext();

       CabinDAORemote cabindaoremote=(CabinDAORemote)ict.lookup("CabinDAOBean/remote");

       Cabin cabin=new Cabin();

       cabin.setDeskLevel(1);

       cabin.setName("hubei");    

       int key=cabindaoremote.create(cabin);

       Cabin cabin1=cabindaoremote.findById(key);

       System.out.println(cabin1.getName());

       System.out.println(cabin1.getId());

       System.out.println(cabin1.getDeskLevel());

    }

}

分享到:
评论

相关推荐

    j2ee 与 j2se 和 j2me的区别

    ### Java 平台的不同版本:J2SE、J2EE 和 J2ME 的区别 在 Java 开发领域中,根据不同的应用场景和需求,Java 被分为了几个主要的平台版本,分别是 J2SE(Java 2 Standard Edition)、J2EE(Java 2 Enterprise ...

    J2SE 和 J2EE api 帮助文档

    首先,J2SE,也被称为Java SE或现在的Java平台标准版,是Java的核心,提供了基础的编程环境和类库,用于开发桌面应用、服务器端应用和嵌入式系统。J2SE包括Java语言规范、Java虚拟机(JVM)、类库和开发工具。它的...

    J2EE初级入门PPT

    5. **J2SE体系概述**:J2SE(Java 2 Standard Edition)主要用于桌面和工作站应用,包含了面向对象编程、异常处理、图形界面、多线程、I/O流、网络编程和Java Applet及JavaBean组件开发等技术。 6. **J2ME体系概述*...

    j2se,j2ee,html,js,jquery,Oracle等基本开发手册

    Java 2 Platform Standard Edition (J2SE) 是 Java 语言的核心平台,提供了基础的类库和运行时环境,用于开发和运行桌面应用、服务器端应用和嵌入式系统。J2SE 包括了诸如集合框架、网络编程、多线程、I/O流以及面向...

    JSP应用教程(修订本)_习题答案

    - **EJB容器**:管理EJB实例,处理客户端请求并调用相应的EJB方法。 - **DB服务器**:存储和管理数据,EJB容器通过JDBC与数据库交互。 #### 第二部分 JSP核心技术编程 **2-2 安装配置Tomcat服务器** - **安装步骤...

    java学习路线

    - **J2ME (Java 2 Platform Micro Edition)**:主要用于嵌入式设备和移动设备上的Java应用开发,例如智能手机、PDA等。 #### 二、J2SE入门指南 新手学习Java时,应从J2SE入手。这一阶段的学习目标主要包括: 1. *...

    如何学习java如何学习java.doc

    J2ME主要应用于嵌入式系统,如手机和PDA;J2SE是Java开发的基础,包含了JDK;而J2EE则是企业级应用开发的平台,涵盖了J2ME和J2SE,用于构建复杂的分布式应用。 学习Java,特别是J2EE,你需要关注以下几个关键知识点...

    J2EE技术概述.pdf

    3. **RMI**: 远程方法调用,允许在不同的虚拟机上运行的对象互相通信。 4. **JNDI**: Java Naming and Directory Interface,提供了查找和访问命名目录服务的API。 5. **JDBC**: Java Database Connectivity,用于...

    java毕业论文范文3篇.pdf

    3. Java技术组件:文中提到了许多Java的技术组件和框架,包括EJB(企业级JavaBeans)、JSP(Java Server Pages)、Java Servlets、JavaMail API、RMI(远程方法调用)、JMS(Java消息服务)、Swing、JDBC(Java...

    Thinking In Java 3

    - **方法**:定义和调用方法是Java编程的核心,用于组织代码并实现功能模块化。 2. **面向对象编程**: - **类与对象**:Java是面向对象的语言,理解类的定义、对象的创建和销毁至关重要。 - **封装**:通过访问...

    jdk配置及Java分类

    在配置JDK时,需要将JDK的`bin`目录添加到`PATH`变量中,以便可以直接从命令行工具调用`java`和`javac`等命令。例如: ``` PATH=C:\Program Files\Java\jdk1.5.0\bin;C:\Program Files\Java\jdk1.5.0\jre\bin; ``` ...

    十分钟J2EE概念入门

    3. **EJB**:Enterprise Java Beans,企业级JavaBean,是一种用于构建分布式、事务处理和安全的业务组件模型。 4. **RMI**:Remote Method Invocation,远程方法调用,允许Java对象在不同 JVM(Java虚拟机)之间...

    j2ee详解(ppt)

    3. **J2SE、J2ME和J2EE的差异** - **J2SE**:用于桌面和工作站应用,包括基础的Java编程技术,如异常处理、图形界面、多线程和网络编程。 - **J2ME**:针对嵌入式设备,如PDA、手机,分为CDC和CLDC两个配置,分别...

    java经典初学

    - **定义**:嵌入式Java平台,主要用于移动设备(如手机、PDA等)的开发。 - **应用场景**:移动应用开发。 - **特点**:资源受限环境下的Java实现。 #### 二、J2SE学习要点 对于初学者来说,J2SE是学习Java的...

    51CTO下载-韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全)

    3. **配置环境变量**:在系统环境中配置 `JAVA_HOME` 和 `PATH` 变量,确保可以从任意目录调用 Java 命令。 ### 结论 通过上述内容,我们可以了解到 Java 平台的多样性和灵活性。无论是初学者还是经验丰富的开发者...

    java、c、c++、vc、vc++、vb的区别和联系.docx

    - **Java EE (J2EE)**: 企业版,针对大型企业级应用开发,提供了如 EJB、JSP 和 Servlets 等组件,便于构建分布式和网络应用。 - **Java ME (J2ME)**: 微版,适用于嵌入式设备和移动设备,如早期的智能手机和平板...

    最新Java面试大全

    - **直接调用其他EJB**:应通过本地或远程接口。 #### 27. Java虚拟机中的另一种类型 - **引用类型**:如对象引用、数组等。 #### 28. 创建对象的其他方式 - **反射**:使用Class类的newInstance()方法。 - **...

    JAVA程序员试题及答案

    - J2EE(Java 2 Enterprise Edition)是企业版,用于开发和部署企业级应用,如Web应用、EJB(Enterprise JavaBeans)等。 - J2ME(Java 2 Micro Edition)是微型版,适用于嵌入式设备和移动设备。 3. **JDK与JRE*...

    《JSP应用教程》习题答案.doc

    - **RMI(Remote Method Invocation)**:允许在远程对象上调用方法,是实现远程服务调用的基础技术。 #### 五、J2EE的信息传递结构 **Web服务器、EJB容器和DB服务器的信息传递结构:** 在J2EE架构中,Web服务器...

Global site tag (gtag.js) - Google Analytics