EJB最简单demo搭建
前言:一直想学那些大神写博客,可也不会什么东西写不出什么东西。但下定决心不能让自己这么水下去了,所以每天写点东西记录自己所学到的一点一滴,记录自己的成长。以此督促自己不断的成长。
EJB入门demo的搭建:
1.安装jboss。本来想下载安装一个最新版本的jboss,结果。。。哎,不会弄,所以,好吧,最后下了一个jboos 5.0.0GA版本。配置一下环境变量,就可以用了。用控制台运行run.bat。。。。
2.本来用eclipse的jboss插件的。结果~~也是一波三折,结果也是没有成功,因为我的eclipse没有jboss的选项,完全不能部署啊,我也是醉了。。。最后用了myeclipse。在window->Preferences->Myeclipse->Servers->JBoss->JBoss 5.X 设置成Enable,并配置路径。jdk设置后成1.6。OK。
3.HelloWorld入门:
新建EJB项目。
新建com.ejb包。在包中创建Session Bean组件:选项都为默认。可以得到两个类:HelloWorld.java和HelloWorldRemote.java,分别为Session Bean的实现类和远程接口类。自己写一个简单的方法,实现输入一个字符串,返回欢迎信息。
远程接口类HelloWorldRemote.java
package com.ejb; import javax.ejb.Remote; @Remote public interface HelloWorldRemote { public String sayHello(String world); }
实现类HelloWorld.java
package com.ejb; import javax.ejb.Stateless; @Stateless public class HelloWorld implements HelloWorldRemote { public String sayHello(String world) { return "Hello," + world; } }
4.将这个EJB项目打包,打成jar包,并把jar包放入jboss的jboss-5.0.0.GA\server\default\deploy目录下,启动jboss。可以得到
5.编写Java类进行测试——HelloworldClient.java
新建一个java工程,在其中新建一个包:com.ejb,包中放入上面写的HelloWorldRemote.java类,然后在其他包中新建一个java测试类,代码如下:
import java.util.Properties; import javax.naming.InitialContext; import javax.naming.NamingException; import com.ejb.HelloWorldRemote; public class HelloWorldClient { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Properties props = new Properties(); props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); props.setProperty("java.naming.provider.url", "localhost:1099"); props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming"); try{ InitialContext ctx = new InitialContext(props); HelloWorldRemote helloWorld = (HelloWorldRemote) ctx.lookup("HelloWorld/remote"); System.out.println(helloWorld.sayHello("World")); System.out.println(helloWorld.sayHello("China")); }catch (NamingException e){ e.printStackTrace(); } } }
在这个EJBTestJava项目中导入jboss-5.0.0.GA\client下的jbossall-client.jar
项目结构如下:
在jboss启动的前提下,运行测试类HelloWorldClient.java。可以得到
6.编写JSP测试——helloworld.jsp
新建一个web项目,在其中编写jsp文件
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@page import="java.util.Properties" %> <%@page import="javax.naming.InitialContext" %> <%@page import="javax.naming.NamingException" %> <%@page import="com.ejb.HelloWorldRemote" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>测试页面</title> </head> <body> <% Properties props = new Properties(); props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); props.setProperty("java.naming.provider.url", "localhost:1099"); props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming"); try{ InitialContext ctx = new InitialContext(props); HelloWorldRemote helloWorld = (HelloWorldRemote) ctx.lookup("HelloWorld/remote"); out.println(helloWorld.sayHello("World")); out.println(helloWorld.sayHello("China")); out.println(helloWorld.sayHello("Chai")); }catch (NamingException e){ e.printStackTrace(); } %> </body> </html>
在这个项目中新建一个包:com.ejb,包中放入上面写的HelloWorldRemote.java类,并导入两个包:一个是jboss-5.0.0.GA\client下的jbossall-client.jar,一个是刚才发布的EJBTest.jar
项目结构如下:
把此项目打包成war包(据说要把web-inf底下的lib目录删除,不知道是不是真的有影响,反正我删了= =),放入jboss-5.0.0.GA\server\default\deploy中,运行jboss。(这一步折腾我好久。。。直接用mecelipse运行jboss来运行这个测试类,一直不行,不知道为什么。)
jboss起来之后,访问http://localhost:8080/EJBTestJSP/helloworld.jsp 可以的得到
如此,HelleWorld入门demo就完成了。(人笨,哎,折腾的好蛋疼)。。。
浙公网安备 33010602011771号