关于JBOSS 在两台电脑上布置EJB,一台作为SERVER,一台做为CLIENT的简单sample.
1首先启动 jboss :run -b 192.168.1.4 run.bat 这样可以启动server并绑定SERVER IP。
2在 server电脑上写以下代码。
一个EJB远程接口
import java.rmi.RemoteException;
import javax.ejb.*;
public interface Converter extends EJBObject {
public double dollarToYen(double dollars) throws RemoteException;
public double yenToEuro(double yen) throws RemoteException;
// Simple example.
public String helloEcho(String word) throws RemoteException;
}
一个EJB session bean
import java.rmi.RemoteException;
import javax.ejb.*;
public class ConverterEJB implements SessionBean {
private static final long serialVersionUID = 1L;
public double dollarToYen(double dollars) {
return dollars * 121.6000;
}
public double yenToEuro(double yen) {
return yen * 0.0077;
}
public String helloEcho(String word) {
System.out.println("Someone called 'Hello Echo Successed!'");
return "*********" + word + "*********";
}
public void ejbCreate() {
System.out.println("Ejb 4 is creating!...");
}
public void ejbPostCreate() {
}
public void ejbActivate() throws EJBException, RemoteException {
}
public void ejbPassivate() throws EJBException, RemoteException {
}
public void ejbRemove() throws EJBException, RemoteException {
}
public void setSessionContext(SessionContext arg0) throws EJBException,
RemoteException {
}
}
一个EJB远程 HOME
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface ConverterHome extends EJBHome {
Converter create() throws CreateException, RemoteException;
}
然后在meta-inf目录下写个 ejb-jar.xml
引用
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.1"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">
<display-name>ConverJAR</display-name>
<enterprise-beans>
<session>
<display-name>ConverterEJB</display-name>
<ejb-name>ConverterEJB</ejb-name>
<home>ConverterHome</home>
<remote>Converter</remote>
<ejb-class>ConverterEJB</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
<security-identity>
<use-caller-identity/>
</security-identity>
</session>
</enterprise-beans>
</ejb-jar>
和jboss.xml
引用
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 4.0//EN" "http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd">
<jboss>
<enterprise-beans>
<session>
<ejb-name>ConverterEJB</ejb-name>
<jndi-name>MyConverter</jndi-name>
</session>
</enterprise-beans>
</jboss>
然后绑定 JNDI
jndi.properties
引用
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=192.168.1.4:1099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
目录结构是
ejb_server
|___src
|___Converter.java,ConverterEJB,ConverterHome
|___META-INF/ejb-jar.xml,jboss.xml
|___jndi.properties
需要的jar有 jboss-j2ee.jar(一般也就是j2ee.jar)
3.CLIENT端
我在另一台电脑上写。
建立一个ejb_client 工程,
写个类
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
public class EJB_Client {
public static void main(String[]args){
Properties pros=new Properties();
pros.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
pros.setProperty("java.naming.provider.url", "jnp://192.168.1.4:1099");
try {
Context context=new InitialContext(pros);
Object objref=context.lookup("MyConverter");
ConverterHome home=(ConverterHome)PortableRemoteObject.narrow(objref, ConverterHome.class);
Converter currentConverter=home.create();
System.out.println(currentConverter.dollarToYen(100));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
需要的JAR包是 jbossall-client.jar包,
还有就是要调用的server端的远程接口,只用Converter,ConverterHome接口就可以,其他什么SESSION BEAN,什么配置文件都不要,也不用安装jboss
其它要注意的小知识
1.jboss 里,MarshalledValueEX 类在E:\development\jboss-4.2.0.GA\jbossall-client.jar里
2.不需要环境变量里jboss_home.
3.在JBOSS里,JNDI树查看 :查找service=JNDIView ,进入该页面后点击 list方法,就会列出JBoss上所有的JNDI服务。
分享到:
相关推荐
在JBuilder2007的建模透视图中,选择Session Bean图标,在绘图区域单击鼠标左键,创建新的Session Bean实例。随后,修改Session Bean的属性,如命名等。 **2. 实现业务方法** 在EJB3.0中,Session Bean可以被视为...
**企业级JavaBeans (EJB) 3.0:核心概念与Session Bean详解** 企业级JavaBeans(Enterprise JavaBeans,...在深入学习EJB 3.0之前,建议阅读"**EJB3.0开发Session Bean.pdf**"这个文档,它将提供更详细的指导和实例。
在EJB-JBoss-Web的实例中,开发者可以创建和管理EJB组件,这些组件通常包括会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean(Message-Driven Beans)。会话bean负责业务逻辑,实体bean持久化...
在实际开发中,"sessionbean1.exe"可能是一个用于演示或教学目的的示例程序,它可能包含了Session Bean的实例,帮助开发者更好地理解Session Bean的工作原理和配置过程。通过运行这个程序,开发者可以直观地看到...
在EJB中,会话Bean分为两种类型:无状态会话Bean(Stateless Session Bean)和有状态会话Bean(Stateful Session Bean)。无状态会话Bean不保留任何客户端特定的信息,每次调用都是独立的。而有状态会话Bean则可以...
"MyEJBProject"很可能是用户提供的EJB3项目实例,可能包含了各种EJB组件,例如业务逻辑的Session Bean,持久化的Entity Bean,或者是处理JMS消息的Message-Driven Bean。这个项目的详细内容需要查看源代码才能...
### JBoss EJB3.0 实例教程知识点详解 #### 一、教程概览与适用人群 本教程《JBoss EJB3.0 实例教程》由黎活明编写,适用于希望深入了解Java企业级开发中EJB3.0组件使用的开发者们。无论是初学者还是有一定经验的...
1. **会话Bean(Session Beans)**:会话bean是EJB的一种类型,主要负责业务逻辑处理。它们可以代表客户端对象在服务器端执行操作,通常用于临时存储用户状态和执行事务。会话bean分为无状态会话bean和有状态会话...
### JBoss EJB3.0 实例教程:深入解析企业级Java Beans #### 知识点一:EJB3.0概念与应用架构 - **Enterprise JavaBeans (EJB)**:是Java EE平台的核心组件之一,用于开发分布式、可移植且高度可扩展的企业应用...
### JBoss EJB3.0 实例教程知识点详解 #### 一、教程概览与适用人群 - **适用人群**:本教程适用于初学者及具有一定Java基础的学习者,特别是那些希望深入了解并掌握EJB 3.0技术的开发者。 - **内容特色**:通过...
例如,`@PostConstruct`和`@PreDestroy`可用于定义Bean实例初始化和销毁时执行的方法。 #### (5):使用配置文件发布Session Bean 除了使用注解外,还可以使用部署描述符(`ejb-jar.xml`)来配置Session Bean的...
通过这个"JBOSS7+EJB3"实例,我们可以深入了解EJB3如何在实际环境中运行,以及如何在JBOSS7这样的应用服务器上部署和管理EJB服务。这不仅有助于提升开发者对EJB3的理解,也有助于在实际项目中更高效地利用EJB3来构建...
通过"jboss EJB3.0实例教程",你可以学习到如何在实际环境中运用这些概念和步骤,逐步掌握EJB3.0的开发技巧。教程中的`EJB3.pdf`很可能包含了详细的实例讲解,从基础概念到实战演练,帮助你深入理解并掌握EJB3.0的...
3. 本地调用:在同一个应用内,可以直接注入会话Bean实例进行调用。 六、EJB的优势 1. 面向接口编程:通过接口定义服务,实现松耦合。 2. 内置事务管理:EJB容器自动管理事务,保证数据一致性。 3. 容器管理的生命...
1. 新建SessionBean,比如名为UserServiceBean。 2. 选择包名(如zizz.ejb),并在Name字段输入Bean的名称。 3. 选择Bean类型为Stateless,表示这是一个不保存会话状态的Bean。 4. 选择Remote访问,表示客户端可以...