??xml version="1.0" encoding="utf-8" standalone="yes"?>
从官|?a target="_blank">https://glassfish.dev.java.net/public/downloadsindex.html下蝲GlassFish
2) 安装
在安装前保jdk已安装,且已讄JAVA_HOME属性?/span>
1. copy 下蝲的jar文g到要安装的目录,如c:"Server
2. 执行java -Xmx256m -jar filename.jarQ中间会弹出关于使用许可的确认窗口?br />
3. 完成后,在c:"Server目录下会生成glassfish目录?br />
3. q入c:"Server"glassfish, 执行antQant -f setup.xml
安装q程l束?/span>
3) 配置
c:"Server"glassfish"bin加入到path环境变量中,以后可以在命o行中直接使用asadminQ而不用进入到c:"Server"glassfish"bin目录了?br />
4) q行
Ҏ1Q进入到glassfish"bin"目录下,双击asadmin.batQ在命o行中输入start-domain domain1?br />
Ҏ2Q通过cmd q入命o行,q入glassfish"bin目录Q执行asadmin start-domain domain1Q如果已按上步将glassfish"bin加入Cpath环境变量Q则无需q入glassfish"bin目录?/span>
执行完以上步骤后Q即可通过览器访?/span>http://localhost:8080/保GlassFish已正常运行,或者通过http://localhost:4848/讉Kglassfish的管理控制台?/span>
若要停止GlassFishQ可通过命oQasadmin stop-domain domain1?br />
二、Eclipse的GlassFish插g
Eclipse的glassfish插g的安装可参考官Ҏ:https://glassfishplugins.dev.java.net/eclipse34/index.html?/span>
刚刚开始学习JBossQ学习了一个入门的小例子Q对于刚接触JBoss和Eclipse的菜鸟来说很有帮助的Q现在把我的试验q程介绍一下?br />
首先Q打开EclipseQ新建——其它——JBoss IDE——J2EE Projects——J2EE 1.4 Projects
下一?br />
填入目名称QHelloWorld
目内容可以选择使用~省值或者自己制定存储空?br />
下一?br />
在源选单下,d文g夹,分别命名为j2srcQ存放java文gQ和srcQ存N|文ӞQ缺省输出文件夹改ؓQHelloWorld/bin
完成
在包资源理器中Q右键单击j2srcQ选择新徏——包Q输入包名:sample.server?/font>
右键单击sample.serverQ选择新徏——接口,输入接口名字QHelloWorldQ此E接口,是指对于客户端而言所能看到的调用接口Q该接口内容为:
/**
*HelloWorld.java
*/
package sample.server;
import javax.ejb.EJBObject;
/**
* @author Administrator
*
* TODO 要更Ҏ生成的类型注释的模板Q请转至
* H口 Q?首选项 Q?Java Q?代码样式 Q?代码模板
*/
public interface HelloWorld extends EJBObject {
public String hello() throws java.rmi.RemoteException;
}
同样的,新徏Home接口HelloWorldHomeQ我们可以把Home接口看做是一个制造EJB的工厂,它告诉EJB容器Q?#8220;我的客户要我生成一个EJBQ现在我把这个Q务交l你啦!”
/**
* HelloWorldHome.java
*/
package sample.server;
import javax.ejb.EJBHome;
/**
* @author Administrator
*
* TODO 要更Ҏ生成的类型注释的模板Q请转至
* H口 Q?首选项 Q?Java Q?代码样式 Q?代码模板
*/
public interface HelloWorldHome extends EJBHome {
HelloWorld create() throws java.rmi.RemoteException,
javax.ejb.CreateException;
}
下面是EJB的实玎ͼ右键单击sample.serverQ新建——其它——JBoss IDE——EJB Components——Session BeanQ输入名UͼHelloWorldBeanQ类型ؓStatelessQRemoteQ选择创徏来自类的构造函敎ͼl承的抽象方法,ejbCreate() method。完成?/font>
/**
* HelloWorldBean.java
*/
package sample.server;
import java.rmi.RemoteException;
import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.ejb.CreateException;
/**
* @ejb.bean name="HelloWorld"
* display-name="Name for HelloWorld"
* description="Description for HelloWorld"
* jndi-name="ejb/HelloWorld"
* type="Stateless"
* view-type="remote"
*/
public class HelloWorldBean implements SessionBean {
/**
*
*/
public HelloWorldBean() {
super();
// TODO 自动生成构造函数存?br />
}
/* Q非 JavadocQ?br />
* @see javax.ejb.SessionBean#setSessionContext(javax.ejb.SessionContext)
*/
public void setSessionContext(SessionContext ctx)
throws EJBException,
RemoteException {
// TODO 自动生成Ҏ存根
}
/* Q非 JavadocQ?br />
* @see javax.ejb.SessionBean#ejbRemove()
*/
public void ejbRemove() throws EJBException, RemoteException {
// TODO 自动生成Ҏ存根
}
/* Q非 JavadocQ?br />
* @see javax.ejb.SessionBean#ejbActivate()
*/
public void ejbActivate() throws EJBException, RemoteException {
// TODO 自动生成Ҏ存根
}
/* Q非 JavadocQ?br />
* @see javax.ejb.SessionBean#ejbPassivate()
*/
public void ejbPassivate() throws EJBException, RemoteException {
// TODO 自动生成Ҏ存根
}
/**
* Default create method
*
* @throws CreateException
* @ejb.create-method
*/
public void ejbCreate() throws CreateException {
// TODO Auto-generated method stub
}
public String hello()
{
System.out.println("hello()");
return "Hello,world";
}
}
服务器端E序~好Q下一步就要做部v工作了?/font>
右键选择srcQ新建目录META-INFQ在该目录下Q新建——其它——JBoss-IDE——Descriptors——EJB 2.1 Deployment DescriptorQ默认名字ؓejb-jar.xmlQ完成?br /> ejb-jar.xmlQ?/font>
?xml version="1.0" encoding="UTF-8"??br />
《ejb-jar version="2.1"
xmlns="
xmlns:xsi="
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
《ejb-jar?br />
《enterprise-beans?br />
《session?br />
《ejb-name》HelloWorldBean?ejb-name?br />
《home》sample.server.HelloWorldHome?home?br />
《remote》sample.server.HelloWorld?remote?br />
《ejb-class》sample.server.HelloWorldBean?ejb-class?br />
《session-type》Stateful?session-type?br />
《transaction-type》Bean?transaction-type?br />
?session?br />
?enterprise-beans?br />
?ejb-jar?/font>
Q备注:在此Q由于网|C的原因Q将<>W号Ҏ了《》,所以,在实际应用中应改?lt;>Q以正常工作。同Ӟejb-jar.xml开头的版本标记文字会因jboss版本不同而不同,希望大家注意Q?!--l version="1.0" encoding="UTF-8-->
q样我们完成了一个简单的会话EJB的编写,下一步是打包?br /> 同时选择j2src和src两个目录Q右键单击选择导出——jar——选择导出目标Q可以放在定义的HelloWorld目录下,起个名字叫HelloWorld.jarQ则会在包资源管理器中看C个文件HelloWorld.jar?/font>
光有EJBQ没有客LQ对我们来说毫无用处Q所以下一步我们就要编写客LE序?br />
同样的,在j2src下创建包sample.client?br />
在该包下新徏c,cd为HelloWorldClientQ添加接口:sample.server.HelloWorldQ?br />
/**
* HelloWorldClient.java
*/
sample.server.HelloWorldHome?/font>
package sample.client;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import sample.server.HelloWorld;
import sample.server.HelloWorldHome;
/**
* @author Administrator
*
* TODO 要更Ҏ生成的类型注释的模板Q请转至
* H口 Q?首选项 Q?Java Q?代码样式 Q?代码模板
*/
public class HelloWorldClient{
public static void main(String [] args){
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL,"localhost:1099");
/**
* 默认是把服务器端EJB部v在本ZQ如果部|在其它机器上,比如192.168.0.1Q则localhost * 改ؓ192.168.0.1卛_
*/
env.put("Java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
try{
Context ctx = new InitialContext(env);
Object obj = ctx.lookup("HelloWorldBean");
HelloWorldHome home =(HelloWorldHome)javax.rmi.PortableRemoteObject.narrow(
obj, HelloWorldHome.class );
HelloWorld helloWorld = home.create();
System.out.println(helloWorld.hello());
helloWorld.remove();
}catch(Exception e){
e.printStackTrace();
System.out.println("Exception:"+e.getMessage());
}
}
}
下面可以编译运行了?br />
手动启动JBossQ直接运行JBoss\bin\目录下的run.bat卛_Q这个过E时间长短跟计算机的配置有关Q配|高的计机几秒钟就可以了,比较传统的计机则需要等?分多钟甚x长,不过你不需要专门等着它的q行Q你双击run.bat后,不用它Q你可以先做一些其他的事情Q比如给mm发条短信啊什么的Q等你发完短信后Q你会发现JBoss已经q行成功Qƈ会告诉你启动JBoss׃多长旉QStarted in 1m:36s:870msQ呵呵,我的机器比较传统哈?br />
选择包资源管理器中的HelloWorld.jarQ右键单击选择Deployment——Deploy toQ?br />
选择jboss 4.0(default)[file:/D:/jboss4/server/default/deploy/]
则系l会自动把HelloWorld.jar文g拯到jboss?server/default/deploy/目录下,jboss的运行窗口将出现
10:09:50,679 INFO [EjbModule] Deploying HelloWorldBean
10:09:52,051 INFO [org.jboss.ejb.EJBDeployer] Deployed: file:/D:/jboss4/server/default/deploy/HelloWorld.jar
服务器端q行成功
右键选择HelloWorldClient.javaQ选择q行——运行,在左辚w择java应用E序下的HelloWorldClientQ右辚w择c\径,在引导程序条目下d外部JARQ分别jboss的client目录下的jboss-j2ee.jar、log4j.jar、jboss-client.jar。然后单击运行,׃看到底下控制C昄?#8220;HelloQWorld”Q哈哈,成功了,q可跟一般的“HelloWorld”不太一样哦?/font>