准备事项
1.查询jBoss部署的JNDI,http://localhost:8080/jmx-console/ 路径下,查找jboss-->service=JNDIView-->java.lang.String list()--点击Invoke-->Global JNDI Namespace(这是全部的JNDI,最下面就有自己开发的HelloWorldBean)
2.运行JBoss: jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\bin\run.bat文件
3.jBoss默认部署的路径: jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\server\default\deploy下
Jboss默认生成的JNDI 名称
当EJB发布到Jboss 时,如果我们没有为它指定全局JNDI名称或修改过其默认EJB名称,Jboss就会按照默认的命名规则为EJB生成全局JNDI名称,默认的命名规则如下:
如果把EJB作为模块打包进后缀为*.ear的JAVA EE企业应用文件,默认的全局JNDI名称是
本地接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/local
远程接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/remote
EAR-FILE-BASE-NAME为ear文件的名称,EJB-CLASS-NAME为EJB的非限定类名。
例:把HelloWorld应用作为EJB模块打包进名为HelloWorld.ear的企业应用文件,它的远程接口的JNDI 名称是:HelloWorld/HelloWorldBean/remote
如果把EJB应用打包成后缀为*.jar的模块文件,默认的全局JNDI名称是
本地接口:EJB-CLASS-NAME/local
远程接口:EJB-CLASS-NAME/remote
例:把HelloWorld应用打包成HelloWorld.jar文件,它的远程接口的JNDI名称是:HelloWorldBean/remote
开发步骤
1.开发服务端HelloWorldBean.java
2.开发客户端EJBClient.java
3.部署服务到jBoss下,有两种方式:一种是打成*.ear文件,一种是打成*.jar文件,本文采用*.jar文件,不同的发布JNDI的名称会不一样,看【Jboss默认生成的JNDI 名称】这里,现在是把HelloWorld.java和HelloWorld.java打成helloWorld.jar文件部署服务到jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\server\default\deploy下,然后运行jBoss,然后客户端调用EJBClient1和EJBClient2两种方式调用.
HelloWorld.java
package cn.cmcc.ejb3;
public interface HelloWorld {
public String say(String name);
}
HelloWorldBean.java
package cn.cmcc.ejb3.impl;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import cn.cmcc.ejb3.HelloWorld;
@Stateless //申明是一个无状态bean
@Remote //申明是一个远程接口,不写默认是本地接口
public class HelloWorldBean implements HelloWorld {
@Override
public String say(String name) {
return name+":说,您好";
}
}
EJBClient1.java
package cn.cmcc.test;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import cn.cmcc.ejb3.HelloWorld;
public class EJBClient1 {
public static void main(String[] args) {
Properties props = new Properties();
//JBoss应用服务器的上下文信息
props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url", "localhost:1099");
//Sun应用服务器的上下文信息
//props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
//props.setProperty("java.naming.provider.url", "localhost:3700");
try {
InitialContext ctx = new InitialContext(props);
HelloWorld helloworld = (HelloWorld) ctx
.lookup("HelloWorldBean/remote");
System.out.println(helloworld.say("佛山"));
} catch (NamingException e) {
System.out.println(e.getMessage());
}
}
}
EJBClient2.java
package cn.cmcc.test;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import cn.cmcc.ejb3.HelloWorld;
public class EJBClient2 {
public static void main(String[] args) {
try {
//默认是去classpath下寻找jndi.properties文件
InitialContext ctx = new InitialContext();
HelloWorld helloworld = (HelloWorld) ctx
.lookup("HelloWorldBean/remote");
System.out.println(helloworld.say("佛山"));
} catch (NamingException e) {
System.out.println(e.getMessage());
}
}
}
jndi.properties
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=localhost:1099
相关推荐
NULL 博文链接:https://diaochenlong2.iteye.com/blog/1846828
试验题目:无状态Session Bean组件的开发与应用。 试验目的:通过对简单无状态会话Bean组件的编写,加深对EJB理论知识的理解,为更深层的EJB应用做准备。 试验任务:根据EJB组件的结构体系和运行机理,编写实现显示...
EJB3示例 有状态和无状态会话bean,其中Test.jsp页面是用于测试远程无状态会话bean页面,可放到时其它web项目中访问,但于分布式测试。
实战EJB之三 开发会话Bean(有状态会话Bean).doc
实验一 开发环境安装、配置及无状态会话Bean的创建
试验任务:设计一个会话Bean,进行计数。将当前的计数值存储在Bean中,当客户端请求时,调用计数函数,进行计数累加。根据EJB组件的结构体系和运行机理,编写实现会话Bean组件,并进行客户端测试。 试验要求: 独立...
环境:Window XP profession, JDK 1.6, MySQL 5.0, JBoss...该示例使用EJB 3.0的无状态会话Bean呼叫JPA持久层完成数据库的操作,推荐广大企业级Java程序员项目中使用。 注意:连接池的配置参见上一个资源readme.txt文档
NULL 博文链接:https://caizhongda.iteye.com/blog/341007
实验6-无状态会话bean.docx实验6-无状态会话bean.docx实验6-无状态会话bean.docx实验6-无状态会话bean.docx实验6-无状态会话bean.docx实验6-无状态会话bean.docx实验6-无状态会话bean.docx实验6-无状态会话bean.docx...
实验6-无状态会话bean.pdf实验6-无状态会话bean.pdf实验6-无状态会话bean.pdf实验6-无状态会话bean.pdf实验6-无状态会话bean.pdf实验6-无状态会话bean.pdf实验6-无状态会话bean.pdf实验6-无状态会话bean.pdf
对SessionBean的开发实例
NULL 博文链接:https://8366.iteye.com/blog/417259
该示例使用Eclipse 3.3 Europa IDE、JDK 6.0、GlassFish 2.0翻写的第一个EJB 3.0会话bean应用。注意:必须首先安装GlassFish服务器,可以通过安装NetBean 6.0(M9)来完成安装该服务器,或能单独安装也行,然后在...
广东工业大学Java EE Web编程技术课程实验,使用JBoss,实现EJB技术中的会话Bean,简单的Helloworld。
NULL 博文链接:https://fruitking.iteye.com/blog/562868
利用NetBeans中的向导创建一个遵循JavaEE 7规范的EJB项目,其中编写了一个用于我国身份证号码验证及查询的无状态会话Bean组件,该会话Bean具有一个远程接口,其中包含如下的商业方法:boolean validateIdentity...
JAVAEE7 有状态会话bean项目,源代码,EJB3.2,JSF2.2,stateful sessionBean(环境:netbeans8.1,NetBeans自带glassfish4.1,JDK7) 可以用于初学者学习有状态会话bean 下载后,解压,直接导入netbeans8.1即可
java ee 6 ejb的一些实例: 包括 有状态会话bean 无状态会话bean 单身会话bean 消息驱动bean 实例
Java EJB中有、无状态SessionBean的两个例子,的无状态SessionBean可,会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等; 在有状态SessionBean中,用累加...
JavaEE5开发网络鲜花店(购物车为有状态会话Bean) 开发环境 NetBean+SunAppserver+Mysql <br/>