用Eclipse3.0+lomboz3.0+jboss3.2.3开发EJB

开发一个EJB

做了这么多准备工作,下面我们动手写一个例子HelloWorld,选择菜单file-new-other,弹出下面的对话框:

<!----><o:p></o:p> 

图5

选择Java-Lomboz J2EE Wizards中选择Lomboz J2EE Project,然后点击Next按钮:<o:p></o:p>

 

图6

Project name中输入项目名称,然后点击Next按钮,

 

图7

在图7Librarles选项卡中点击 Add External JARs按钮,添加C:\Sun\AppServer\lib\j2ee.jar,然后点击Next按钮,

 

图8

Ejb Modules选项卡中点击Add按钮,增加一个Ejb ModuleHelloWorld,然后点击Targeted Servers,

<o:p></o:p> 

图9

选择JBOSS 3.2.x服务器,点击Add按钮,最后点击Finish按钮,这时Package Explorer看上去像图10的样子。

 

<o:p></o:p>

<o:p></o:p>

<o:p>图10</o:p>

<o:p></o:p><o:p>在项目名称HelloWorldProject上点击鼠标右键,在弹出的菜单中选择new,弹出图11对话框,</o:p>

<o:p> </o:p>

<o:p><o:p></o:p></o:p>

<o:p><o:p>图11</o:p></o:p>

<o:p><o:p></o:p></o:p>选择Lomboz EJB Creation Wizard,然后点击Next按钮,

 

<o:p></o:p>

<o:p>图12</o:p>

<o:p></o:p> Package输入com.test,Name输入HelloWorldEJB,EJB Type 选择Stateless Session EJB,然后点击Finish按钮,这时Package Explorer看上去像图13的样子

 

<o:p></o:p>

<o:p>图13</o:p>

<o:p></o:p><o:p>HelloWorldEJBBean上点击鼠标右键,在弹出的菜单中选择Lomboz J2EE,再选择Add EJB Method,弹出图14对话框,</o:p>

<o:p> </o:p>

<o:p><o:p></o:p></o:p>

<o:p><o:p>图14</o:p></o:p>

<o:p><o:p></o:p></o:p><o:p></o:p><o:p>Method Signture中输入 public String helloWorld(),点击Finish按钮,在生成的代码中找到:<o:p></o:p></o:p>

public String helloWorld(){ <o:p></o:p>

 return null; <o:p></o:p>

}<o:p></o:p>

修改为:<o:p></o:p>

public String helloWorld(){ <o:p></o:p>

 return "Hello World!"; <o:p></o:p>

}<o:p></o:p>

Package Explorer中的HelloWorldEJBBean点击鼠标右键,在弹出的菜单中选择Lomboz J2EE,再选择Add EJB to Module,弹出图15对话框。<o:p></o:p>

 

图15

选中EJB[HelloWorld],点击OK按钮。在Package Explorer中找到HelloWorld如图16所示:

 

<o:p></o:p>

<o:p></o:p>

<o:p></o:p>

<o:p>16</o:p>

<o:p>       </o:p><o:p>HelloWorld上点击鼠标右键,然后在弹出的菜单中选择Lomboz J2EE,再选择Generate EJB Classes,如果没有出现错误,这是自动生成了一个ejbsrc文件夹,里面的文件也是自动生成的。</o:p>

<o:p>    再在HelloWorld上点击鼠标右键,在弹出的菜单中选择Lomboz J2EE,再选择Deploy Module来部署EJB Module</o:p>

<o:p>   EJB Module部署完成后,下面我们做一个客户端来调用HelloWorld()方法。</o:p>

<o:p>   在文件菜单中选择New,再选择Other,在弹出的对话框如图11所示,选择Lomboz EJB Test Client Wizard,按照图17所示,填写相应参数,</o:p>

<o:p> </o:p>

<o:p><o:p></o:p></o:p>

<o:p><o:p></o:p></o:p>

<o:p><o:p>图 17</o:p></o:p>

<o:p><o:p>

然后点击Finish按钮,生成HelloWorldClient.java文件,编辑这个文件,使代码看上去像下面的样子:<o:p></o:p>

//HelloWorldClient.java<o:p></o:p>

/*<o:p></o:p>

 * Created on <!----><st1:chsdate month="7" islunardate="False" day="19" year="2004" w:st="on" isrocdate="False">2004-7-19</st1:chsdate><o:p></o:p>

 *<o:p></o:p>

 * TODO To change the template for this generated file go to<o:p></o:p>

 * Window - Preferences - Java - Code Style - Code Templates<o:p></o:p>

 */<o:p></o:p>

package com.test;<o:p></o:p>

<o:p> </o:p>

import java.rmi.RemoteException;<o:p></o:p>

import java.util.Hashtable;<o:p></o:p>

<o:p> </o:p>

import javax.ejb.CreateException;<o:p></o:p>

import javax.naming.InitialContext;<o:p></o:p>

import javax.naming.NamingException;<o:p></o:p>

<o:p> </o:p>

/**<o:p></o:p>

 * @author Administrator<o:p></o:p>

 *<o:p></o:p>

 * TODO To change the template for this generated type comment go to<o:p></o:p>

 * Window - Preferences - Java - Code Style - Code Templates<o:p></o:p>

 */<o:p></o:p>

public class HelloWorldClient {<o:p></o:p>

<o:p> </o:p>

    private com.test.HelloWorldEJBHome getHome() throws NamingException {<o:p></o:p>

        return (com.test.HelloWorldEJBHome) getContext().lookup(<o:p></o:p>

                com.test.HelloWorldEJBHome.JNDI_NAME);<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    private InitialContext getContext() throws NamingException {<o:p></o:p>

        Hashtable props = new Hashtable();<o:p></o:p>

<o:p> </o:p>

        props.put(InitialContext.INITIAL_CONTEXT_FACTORY,<o:p></o:p>

                "org.jnp.interfaces.NamingContextFactory");<o:p></o:p>

        props.put(InitialContext.PROVIDER_URL, "jnp://127.0.0.1:1099");<o:p></o:p>

<o:p> </o:p>

        // This establishes the security for authorization/authentication<o:p></o:p>

        // props.put(InitialContext.SECURITY_PRINCIPAL,"username");<o:p></o:p>

        // props.put(InitialContext.SECURITY_CREDENTIALS,"password");<o:p></o:p>

<o:p> </o:p>

        InitialContext initialContext = new InitialContext(props);<o:p></o:p>

        return initialContext;<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    public void testBean() {<o:p></o:p>

<o:p> </o:p>

        try {<o:p></o:p>

            com.test.HelloWorldEJB myBean = getHome().create();<o:p></o:p>

<o:p> </o:p>

            //--------------------------------------<o:p></o:p>

            //This is the place you make your calls.<o:p></o:p>

            //System.out.println(myBean.callYourMethod());<o:p></o:p>

            System.out.println(myBean.helloWorld());<o:p></o:p>

        } catch (RemoteException e) {<o:p></o:p>

            e.printStackTrace();<o:p></o:p>

        } catch (CreateException e) {<o:p></o:p>

            e.printStackTrace();<o:p></o:p>

        } catch (NamingException e) {<o:p></o:p>

            e.printStackTrace();<o:p></o:p>

        }<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    public static void main(String[] args) {<o:p></o:p>

        HelloWorldClient test = new HelloWorldClient();<o:p></o:p>

        test.testBean();<o:p></o:p>

<o:p> </o:p>

    }<o:p></o:p>

}<o:p></o:p>

<o:p> </o:p>

下面来运行这个程序,进入Jboss的安装目录D:\jboss-<st1:chsdate month="12" islunardate="False" day="30" year="1899" w:st="on" isrocdate="False">3.2.3</st1:chsdate>\bin,运行run.bat来启动服务器,服务器启动完成后 ,在Package Explorer中找到HelloWorldClient.java,在其上面击鼠标右键,在弹出的菜单中选择中选择run,再选择Java Application,如果在控制台中输出Hello World!说明调用成功了,如果出现了异常,那么你需要再看一边这篇文章或者Email给我[email protected]<o:p></o:p>

还有一个问题,有人会问如何在命令提示符环境下运行客户端呢?<o:p></o:p>

需要编写一个批处理文件runHelloWorldClient.bat<o:p></o:p>

java -classpath "D:\eclipse3\workspace\EJBProject\bin;D:\ jboss-<st1:chsdate month="12" islunardate="False" day="30" year="1899" w:st="on" isrocdate="False">3.2.3</st1:chsdate>\client\concurrent.jar;D:\jboss-3.2.3\client\gnu-regexp.jar;D:\jboss-3.2.3\client\jacorb.jar;D:\jboss-3.2.3\client\jbossall-client.jar;D:\jboss-3.2.3\client\jboss-client.jar;D:\jboss-3.2.3\client\jboss-common-client.jar;D:\jboss-3.2.3\client\jbossha-client.jar;D:\jboss-3.2.3\client\jboss-iiop-client.jar;D:\jboss-3.2.3\client\jboss-j2ee.jar;D:\jboss-3.2.3\client\jboss-jaas.jar;D:\jboss-3.2.3\client\jbossjmx-ant.jar;D:\jboss-3.2.3\client\jbossmq-client.jar;D:\boss-3.2.3\client\jbossmqha.jar;D:\jboss-3.2.3\client\jboss-net-client.jar;D:\jboss-3.2.3\client\jbosssx-client.jar;D:\jboss-3.2.3\client\jboss-system-client.jar;D:\jboss-3.2.3\client\jcert.jar;D:\jboss-3.2.3\client\jmx-connector-client-factory.jar;D:\jboss-3.2.3\client\jmx-ejb-connector-client.jar;D:\jboss-3.2.3\client\jmx-rmi-connector-client.jar;D:\jboss-3.2.3\client\jnet.jar;D:\jboss-3.2.3\client\jnp-client.jar;D:\jboss-3.2.3\client\jsse.jar;D:\jboss-3.2.3\client\log4j.jar"  com.test.HelloWorldClient<o:p></o:p>

把它放在D:\Eclipse3\workspace\HelloWorldProject\bin目录(com\test所在的目录),然后运行,或者将上面批处理中引号内的路径加到环境变量ClassPath中,然后运行<o:p></o:p>

Java com.test.HelloWorldClient<o:p></o:p>

也可以。<o:p></o:p>

</o:p>
</o:p>

你可能感兴趣的:(log4j,jboss,ant,Security,ejb)