MyEclipse+JBoss开发EJB3.0
1. 配置环境:下载JBoss我用的是jboss4.0.5GA http://umn.dl.sourceforge.net/sourceforge/jboss/jboss-4.0.5.GA.zip
然后下载jboss-EJB-3.0_RC9_Patch_1我用的是http://nchc.dl.sourceforge.net/sourceforge/jboss/jboss-EJB-3.0_RC9_Patch_1.zip
设置环境变量:JBOSS_HOME=D:\jboss-4.0.5.GA;
下载ant1.7用ant部署jboss-EJB-3.0_RC9_Patch_1
设置ANT_HOME= C:\apache-ant-1.7.0
Path里添加%ANT_HOME%\bin 然后打开jboss-EJB-3.0_RC9_Patch_1
文件夹下的install.html 打开命令行
cd jboss-EJB-3.0_RC9_Patch1-FD<o:p></o:p>
ant -f install.xml -Djboss.server.config=all 这样就部署到jboss下了<o:p></o:p>
接下来就是切换到jboss4.0.5GA\bin目录下运行run –c all 看到这样的信息说明你环境配置成功了
<v:shapetype o:spt="75" coordsize="21600,21600" filled="f" stroked="f" id="_x0000_t75" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" o:connecttype="rect" gradientshapeok="t"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape o:spid="_x0000_i1032" id="图片_x0020_19" type="#_x0000_t75" style="VISIBILITY: visible; WIDTH: 415.5pt; HEIGHT: 1in; mso-wrap-style: square"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image001.png" o:title=""></v:imagedata></v:shape>
再看看http://localhost:8080/看看是否用jboss的欢迎页面<o:p></o:p>
2.开始我们的第一个ejb工程吧<o:p></o:p>
新建一个WEB工程命名为firstEjb<o:p></o:p>
<v:shape o:spid="_x0000_i1031" id="图片_x0020_1" type="#_x0000_t75" style="VISIBILITY: visible; WIDTH: 281.25pt; HEIGHT: 267pt; mso-wrap-style: square"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image003.png" o:title=""></v:imagedata></v:shape><o:p></o:p>
接着建package 为com.ejb<o:p></o:p>
<v:shape o:spid="_x0000_i1030" id="图片_x0020_4" type="#_x0000_t75" style="VISIBILITY: visible; WIDTH: 415.5pt; HEIGHT: 230.25pt; mso-wrap-style: square"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image005.png" o:title=""></v:imagedata></v:shape><o:p></o:p>
新建一个接口为HelloWorld 建立方法为sayHello();<o:p></o:p>
<v:shape o:spid="_x0000_i1029" id="图片_x0020_7" type="#_x0000_t75" style="VISIBILITY: visible; WIDTH: 415.5pt; HEIGHT: 218.25pt; mso-wrap-style: square"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image007.png" o:title=""></v:imagedata></v:shape><o:p></o:p>
package com.ejb;<o:p></o:p>
<o:p> </o:p>
public interface HelloWorld {<o:p></o:p>
public String sayHello(String who);<o:p></o:p>
}<o:p></o:p>
接着新建class HelloWorldBean.java<o:p></o:p>
<v:shape o:spid="_x0000_i1028" id="图片_x0020_10" type="#_x0000_t75" style="VISIBILITY: visible; WIDTH: 415.5pt; HEIGHT: 192.75pt; mso-wrap-style: square"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image009.png" o:title=""></v:imagedata></v:shape><o:p></o:p>
package com.ejb;<o:p></o:p>
import javax.ejb.Remote;<o:p></o:p>
import javax.ejb.Stateless;<o:p></o:p>
<o:p> </o:p>
@Stateless<o:p></o:p>
@Remote({HelloWorld.class})<o:p></o:p>
public class HelloWorldBean implements HelloWorld {<o:p></o:p>
<o:p> </o:p>
public String sayHello(String who) {<o:p></o:p>
// TODO Auto-generated method stub<o:p></o:p>
return who+",你好,欢迎使用ejb";<o:p></o:p>
}<o:p></o:p>
<o:p> </o:p>
}<o:p></o:p>
新建个servlet 为firstEjb.java<o:p></o:p>
<v:shape o:spid="_x0000_i1027" id="图片_x0020_13" type="#_x0000_t75" style="VISIBILITY: visible; WIDTH: 415.5pt; HEIGHT: 213pt; mso-wrap-style: square"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image011.png" o:title=""></v:imagedata></v:shape><o:p></o:p>
部分源码<o:p></o:p>
public void doGet(HttpServletRequest request, HttpServletResponse response)<o:p></o:p>
throws ServletException, IOException {<o:p></o:p>
<o:p> </o:p>
response.setContentType("text/html,charset=GBK");<o:p></o:p>
PrintWriter out = response.getWriter();<o:p></o:p>
out<o:p></o:p>
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");<o:p></o:p>
out.println("<HTML>");<o:p></o:p>
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");<o:p></o:p>
out.println(" <BODY>");<o:p></o:p>
<o:p></o:p>
Properties props = new Properties();<o:p></o:p>
props.setProperty("java.naming.factory.initial",<o:p></o:p>
"org.jnp.interfaces.NamingContextFactory");<o:p></o:p>
props.setProperty("java.naming.provider.url", "localhost:1099");<o:p></o:p>
props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");<o:p></o:p>
InitialContext ctx;<o:p></o:p>
try {<o:p></o:p>
ctx = new InitialContext(props);<o:p></o:p>
HelloWorld helloworld = (HelloWorld)<o:p></o:p>
ctx.lookup("HelloWorldBean/remote");<o:p></o:p>
out.println(helloworld.sayHello("小树"));<o:p></o:p>
} catch (NamingException e) {<o:p></o:p>
out.println(e.getMessage());<o:p></o:p>
}<o:p></o:p>
out.println(" </BODY>");<o:p></o:p>
out.println("</HTML>");<o:p></o:p>
out.flush();<o:p></o:p>
out.close();<o:p></o:p>
}<o:p></o:p>
打成jar包放到D:\jboss-4.0.5.GA\server\all\deploy下<o:p></o:p>
<v:shape o:spid="_x0000_i1026" id="图片_x0020_16" type="#_x0000_t75" style="VISIBILITY: visible; WIDTH: 415.5pt; HEIGHT: 207.75pt; mso-wrap-style: square"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image013.png" o:title=""></v:imagedata></v:shape><o:p></o:p>
最后就是发布程序了<o:p></o:p>
<v:shape o:spid="_x0000_i1025" id="图片_x0020_22" type="#_x0000_t75" style="VISIBILITY: visible; WIDTH: 415.5pt; HEIGHT: 142.5pt; mso-wrap-style: square"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image015.png" o:title=""></v:imagedata></v:shape><o:p></o:p>
<?xml version="1.0" encoding="UTF-8"?><o:p></o:p>
<web-app version="2.4" <o:p></o:p>
xmlns="http://java.sun.com/xml/ns/j2ee" <o:p></o:p>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <o:p></o:p>
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee <o:p></o:p>
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><o:p></o:p>
<servlet><o:p></o:p>
<description>This is the description of my J2EE component</description><o:p></o:p>
<display-name>This is the display name of my J2EE component</display-name><o:p></o:p>
<servlet-name>firstEjb</servlet-name><o:p></o:p>
<servlet-class>com.servlet.firstEjb</servlet-class><o:p></o:p>
</se