EJB2.0 笔记

SessionBean的学习:

用于测试EJB的client代码:

package cn.choelea.ejb;

import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;

public class HelloClient {
	public HelloClient() {}
	public static void main(String[] args) throws Exception {
		Properties properties = new Properties();
		properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
		properties.put(Context.PROVIDER_URL, "t3://127.0.0.1:7001");
		Context ctx=new InitialContext(properties );
		Object obj = ctx.lookup("HelloWorldEJB");
		HelloWorldHome home = (HelloWorldHome) javax.rmi.PortableRemoteObject.narrow(obj,
				HelloWorldHome.class);
		HelloWorld hello = home.create();
		System.out.println(hello.helloWorld());
	}
}

 客户端可以是个简单的java application. classpath 中要有服务器端打包的EJB的jar文件(或者只导入两个接口类即可)和weblogic.jar

 

Weblogic Server端EJB

HelloWorld 远程接口:

package cn.choelea.ejb;
import java.rmi.RemoteException;

import javax.ejb.EJBObject;


public interface HelloWorld extends EJBObject{
	public String helloWorld() throws RemoteException;
}

 

Home 接口:

package cn.choelea.ejb;

import java.rmi.RemoteException;

import javax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface HelloWorldHome extends EJBHome{
	public HelloWorld create() throws CreateException,RemoteException;
}

 

EJB 类:

package cn.choelea.ejb;

import java.rmi.RemoteException;

import javax.ejb.EJBException;
import javax.ejb.EJBHome;
import javax.ejb.EJBObject;
import javax.ejb.Handle;
import javax.ejb.RemoveException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;

public class HelloWorldBean implements SessionBean,HelloWorld{
	private SessionContext ctx;
	public EJBHome getEJBHome() throws RemoteException {
		// TODO Auto-generated method stub
		return null;
	}
	public void ejbCreate(){}
	public Handle getHandle() throws RemoteException {
		// TODO Auto-generated method stub
		return null;
	}

	public Object getPrimaryKey() throws RemoteException {
		// TODO Auto-generated method stub
		return null;
	}

	public boolean isIdentical(EJBObject arg0) throws RemoteException {
		// TODO Auto-generated method stub
		return false;
	}

	public void remove() throws RemoteException, RemoveException {
		// TODO Auto-generated method stub
		
	}

	public void ejbActivate() throws EJBException, RemoteException {
		// TODO Auto-generated method stub
		
	}

	public void ejbPassivate() throws EJBException, RemoteException {
		// TODO Auto-generated method stub
		
	}

	public void ejbRemove() throws EJBException, RemoteException {
		// TODO Auto-generated method stub
		
	}

	public void setSessionContext(SessionContext arg0) throws EJBException,
			RemoteException {
		ctx = arg0;		
	}

	public String helloWorld() throws RemoteException {
		return "Hello World. Welcome to EJB!";
	}

}

 

EJB部署文件:(ejb-jar.xml)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar id="ejb-jar_ID">
	<enterprise-beans>
		<session>
			<ejb-name>HelloWorld</ejb-name>
			<home>cn.choelea.ejb.HelloWorldHome</home>
			<remote>cn.choelea.ejb.HelloWorld</remote>
			<ejb-class>cn.choelea.ejb.HelloWorldBean</ejb-class>
			<session-type>Stateless</session-type>
			<transaction-type>Bean</transaction-type>
		</session>
	</enterprise-beans>
</ejb-jar>

 

weblogic-ejb-jar.xml 描述文件

<?xml version="1.0"?>

<!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN" "http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd">

<!-- Sample MessageDriven bean Weblogic deployment descriptor -->

<weblogic-ejb-jar>
	<weblogic-enterprise-bean>
		<ejb-name>HelloWorld</ejb-name>
		<jndi-name>HelloWorldEJB</jndi-name>
	</weblogic-enterprise-bean>
</weblogic-ejb-jar>

 

 

你可能感兴趣的:(xml,bean,weblogic,ejb,sun)