【EJB一】第一个实例
来源:互联网 发布:开淘宝小技巧 编辑:程序博客网 时间:2024/05/05 22:02
EJB是什么
EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。简单的说,它提供的服务可以供其他程序远程调用。
EJB环境搭建
1、JDK支持2、JBoss服务器安装和部署(支持EJB,tomcate不支持EJB)
第一个实例
1、创建一个EJB Project(ejb01)2、创建一个接口(可供其他程序远程调用)
package com.bjsxt.ejb;public interface FirstEjb { public String saySomething(String name);}
添加实现类:
package com.bjsxt.ejb;import javax.ejb.Remote;import javax.ejb.Stateless;@Stateless@Remotepublic class FirstEjbBean implements FirstEjb { public String saySomething(String name) { return "你好!"+name; }}
到此为止,EJB程序代码已经编写完毕。看起来他和我们平常写的代码并无多大的区别,唯一的区别是,他用注解来标明实现类是@Remote和@Stateless。3、创建一个普通的Java Project(ejb01_client)来调用写好的EJB接口。当然,要想调用EJB接口,必须要引入接口的jar包,所以,我们将接口导出为jar文件,在ejb01_client中引入即可。
编写调用接口的类代码:
public class ejbClient { /** * @param args * @throws NamingException */ public static void main(String[] args) throws NamingException { InitialContext context=new InitialContext(); FirstEjb firstEjb=(FirstEjb)context.lookup("FirstEjbBean/remote"); String string=firstEjb.saySomething("张三"); System.out.print(string); }}
此外,在调用接口时,用到了JNDI来根据名称进行查找实现类。所以必须提供JNDI的一个来源,来classpath下面创建jndi.properties文件
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactoryjava.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfacesjava.naming.provider.url=localhost
当然,不止使用属性文件这一种方式来获取JNDI的上下文工厂。还可以通过代码创建property的方式或者hashTable等的方式来进行。
方式一:
Properties props= new Properties();props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");props.setProperty("java.naming.provider.url", "jnp://部署ejb的服务器ip");props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");InitialContext ctx = new InitialContext(props);FirstEjb firstEjb=(FirstEjb)ctx .lookup("FirstEjbBean/remote");
方式二:
private static InitialContext context;If(context==null){Hashtable props = new Hashtable();props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");props.put(Context.PROVIDER_URL,"jnp://部署ejb的服务器ip");context=new InitialContext(props);}FirstEjb firstEjb=(FirstEjb)ctx .lookup("FirstEjbBean/remote");
最后需要将ejb01部署到Jboss上面,我们就可以运行ejb01_client进行测试了。当然如果你在测试过程中,提示找不到jndi的上下文工厂类时,可以尝试引入jbossall-client.jar的包来解决。
0 0
- 【EJB一】第一个实例
- 菜鸟学EJB(一)——第一个实例
- jboss第一个ejb
- 第一个EJB程序
- EJB入门实例一
- 开发第一个EJB应用
- SSH深度历险(二) Jboss+EJB的第一个实例
- EJB学习之二第一个Ejb程序
- JBOSS――第一个EJB
- JBOSS――第一个EJB
- JBOSS――第一个EJB
- 开发第一个ejb需要注意的。
- 我的第一个EJB程序
- JBOSS――第一个EJB
- Jboss下的第一个EJB程序
- EJB入门第一个小例子
- JBoss + EJB3 + MySql : 开发第一个EJB
- 我的第一个EJB应用
- Java链接sql server并对它进行查询、增删改
- JS学习7(BOM)
- IT忍者神龟之Spring Task动态添加任务
- AYITACM2016省赛第三周A-Nested Dolls(贪心解嵌套问题)
- Linux安装卸载Mysql数据库
- 【EJB一】第一个实例
- 在ROS中通过Arduino实现对4WD轮式机器人的简单控制
- Linux 命令行
- 第8周项目4-指向学生类的指针
- select、poll、epoll之间的区别总结
- 如何将String[]类型的数据保存到数据库里
- python基础语法
- host-only模式下虚拟机ping不通主机 主机却可以ping通虚拟机 解决方案
- leetcode 071 Simplify Path