鎬葷粨鏋勶細
J2EE搴旂敤/
|__EJB緇勪歡/(haiejb.jar)
| |__META-INF/
| | |__ejb-jar.xml
| | |__jboss.xml
| |__ejbs/
| |__HaiHome.class
| |__HaiClient.class
| |__HaiBean.class
|__WEB搴旂敤/(haiejb.war)
| |__haiejb.jsp
| |__WEB-INF/
| |__web.xml
| |__jboss-web.xml
|__META-INF/
|__application.xml
涓銆佺紪璇慾ava鏂囦歡涓篍JB綾繪枃浠?/FONT>
java鏂囦歡緙栬瘧錛?/STRONG>
[鍋囧畾鍦ㄧ郴緇熺幆澧冨彉閲忕殑CLASSPATH涓寘鍚簡javax.ejb.*鍖咃紝璇ュ寘鍙互鍦ㄤ互涓嬪湴鏂規壘錛?/FONT>
JBOSS_HOME\server\default\lib\jboss-j2ee.jar
JBOSS_HOME\client\jboss-j2ee.jar]
[java婧愭枃浠剁洰褰昡>:javac -classpath %classpath% -d [杈撳嚭鐩綍錛欵JB緇勪歡鐩綍] *.java
HaiHome.java:
package ejbs;
import java.io.Serializable;
import java.rmi.*;
import javax.ejb.*;
public interface HaiHome extends EJBHome {
HaiClient create() throws RemoteException, CreateException;
}
HaiClient.java:
package ejbs;
import javax.ejb.*;
import java.rmi.RemoteException;
public interface HaiClient extends EJBObject {
public String sayHai() throws RemoteException;
}
haiBean.java:
package ejbs;
import javax.ejb.*;
import javax.naming.*;
public class HaiBean implements SessionBean {
public String sayHai() {
return "Hai, EJB technology!";
}
public void ejbCreate() throws EJBException {}
public void ejbRemove() throws EJBException {}
public void ejbPassivate() {}
public void ejbActivate() {}
public void setSessionContext(SessionContext sc) {}
}
浜屻佸垱寤篍JB緇勪歡錛?/FONT>
haiejb.jar:(EJB緇勪歡錛?/FONT>
鎵撳寘鍛戒護錛歔EJB緇勪歡鐩綍]>:jar cvf haiejb.jar META-INF/ ejbs/
|__META-INF/
| |__ejb-jar.xml
| |__jboss.xml
|__ejbs/
|__HaiHome.class
|__HaiClient.class
|__HaiBean.class
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>
<description>Hai EJB instance.</description>
<display-name>Hai EJB</display-name>
<enterprise-beans>
<session>
<ejb-name>HaiEJB</ejb-name>
<home>ejbs.HaiHome</home>
<remote>ejbs.HaiClient</remote>
<ejb-class>ejbs.HaiBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
jboss.xml:
<?xml version="1.0" encoding="UTF-8"?>
<jboss>
<enterprise-beans>
<session>
<ejb-name>HaiEJB</ejb-name>
<jndi-name>HaiEJB</jndi-name>
</session>
</enterprise-beans>
</jboss>
涓夈佸垱寤篧EB搴旂敤
haiejb.war:(WEB搴旂敤錛?/FONT>
鎵撳寘鍛戒護錛歔WEB搴旂敤鐩綍]>:jar cvf haiejb.war haiejb.jsp WEB-INF/
|__haiejb.jsp
|__WEB-INF/
|__web.xml
|__jboss-web.xml
haiejb.jsp:
<%@ page contentType="text/html;charset=GBK" %>
<%@ page import="ejbs.*,javax.ejb.*,javax.naming.*,javax.rmi.PortableRemoteObject,java.rmi.RemoteException" %>
<html>
<body>
<%
String message = "nothing!";
try {
InitialContext ic = new InitialContext();
Object objRef = ic.lookup("HaiEJB");
HaiHome home = (HaiHome) PortableRemoteObject.narrow(objRef,ejbs.HaiHome.class);
HaiClient haiRemote = home.create();
message = haiRemote.sayHai();
} catch (RemoteException re) {
re.printStackTrace();
} catch (CreateException ce) {
ce.printStackTrace();
} catch (NamingException ne) {
ne.printStackTrace();
}
%>
<h1><%=message%></h1>
</body>
</html>
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'>
<web-app>
<ejb-ref>
<ejb-ref-name>HaiEJB</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>ejbs.HaiHome</home>
<remote>ejbs.HaiClient</remote>
</ejb-ref>
</web-app>
jboss-web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<ejb-ref>
<ejb-ref-name>HaiEJB</ejb-ref-name>
<jndi-name>HaiEJB</jndi-name>
</ejb-ref>
</jboss-web>
鍥涖佸垱寤篔2EE搴旂敤紼嬪簭
haiejb.ear: (J2EE搴旂敤紼嬪簭錛?/FONT>
鎶婁笂闈㈠垱寤虹殑haiejb.jar鍜宧aiejb.war鍖呮嫹璐濆埌浣犲垱寤虹殑J2EE搴旂敤涓葷洰褰曪紝鏂板緩涓涓狹ETA-INF鐩綍騫跺湪閲岄潰鍒涘緩application.xml鏂囦歡錛?/FONT>
鎵撳寘鍛戒護錛歔J2EE搴旂敤鐩綍]>:jar cvf haiejb.ear haiejb.jar haiejb.war META-INF/
|__haiejb.jar
|__haiejb.war
|__META-INF/
|__application.xml
application.xml:
<?xml version="1.0" encoding="UTF-8"?>
<application>
<display-name>HaiEJB J2EE Application</display-name>
<module>
<web>
<web-uri>haiejb.war</web-uri>
<context-root>/haiejb</context-root>
</web>
</module>
<module>
<ejb>haiejb.jar</ejb>
</module>
</application>
浜斻侀儴緗睯2EE搴旂敤錛?/STRONG>
鎶奾aiejb.ear鎷瘋礉鍒?/STRONG>
JBOSS_HOME\server\default\deploy\
鍚姩jboss 4.0,娉ㄦ剰鍛戒護琛岀獥鍙d腑鏈夋棤寮傚父錛屽鏋滄湁寮傚父鎯呭喌錛岃鏌ョ湅log鏂囦歡錛?/STRONG>
JBOSS_HOME\server\default\log\server.log
浠庝腑鏌ユ壘鍒嗘瀽闂鎵鍦紝鐒跺悗鏀規涔?鐩村埌鏃犲紓甯告樉紺?/STRONG>
鏈鍚庡湪嫻忚鍣ㄥ湴鍧鏍忎腑閿叆錛?/FONT>
http://localhost:8080/haiejb/haiejb.jsp
緇撴灉錛?/FONT>
Hai, EJB technology!