当前位置: 代码迷 >> JBoss >> JBOSS部署EJB3小测试程序的有关问题
  详细解决方案

JBOSS部署EJB3小测试程序的有关问题

热度:8141   发布时间:2013-02-26 00:00:00.0
JBOSS部署EJB3小测试程序的问题
先声明,本人初学ejb3,问的问题白痴,别拍.
补充一点,问题为100分,如果谁帮我解决,追加100分。
因为我担心这个帖子也会无下文,之前有四个人发过同样的问题。
http://topic.csdn.net/u/20080526/02/1DE6F4F8-B084-4D09-A067-C19CE13CFFBC
http://topic.csdn.net/u/20080911/19/D5342302-8887-4DE9-8CDA-38501D262400
http://topic.csdn.net/u/20081106/10/326AD298-1BA5-44B5-91CD-EDBC79671D5F
http://topic.csdn.net/u/20090115/18/D4D3E1E1-E232-4C5F-90C6-EFED53824D62

我的目的:
http://blog.sina.com.cn/s/blog_5f5fff010100cmc0
这篇帖子里讲述了如何用myeclipse+jboss来配置运行第一个Ejb3的程序,我想完全按照它的步骤做然后做一个测试用例
java编译运行环境正常,jboss版本是4.0.5.GA解压版,myeclipse是6.5

出的错误:
javax.naming.NameNotFoundException: FirstEjbBean not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
  …………中间还有一大堆,不看也没关系
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
at javax.naming.InitialContext.lookup(Unknown Source)
at com.feiyu.ejb.FirstEjbClient.main(FirstEjbClient.java:12)

主要代码:
=====================>
接口FirstEjb 
Java code
package com.feiyu.ejb;public interface FirstEjb {    public String saySomething(String name);}

FirstEjbBean
Java code
package com.feiyu.ejb;import javax.ejb.Remote;import javax.ejb.Stateless;@Stateless@Remotepublic class FirstEjbBean implements FirstEjb {    public String saySomething(String name) {        return "Hello, " + name;    }}

=====================>
测试类,注意,虽然包名相同,但与上面是位于不同的项目,上面是EJB项目,这里是Java Project(所以采用的是@Remote)
Java code
package com.feiyu.ejb;import javax.naming.InitialContext;import javax.naming.NamingException;public class FirstEjbClient {    public static void main(String args[]) {        try {            InitialContext context = new InitialContext();            FirstEjb firstEjb = (FirstEjb) context.lookup("FirstEjbBean/remote");            String s = firstEjb.saySomething("xiesisi");            System.out.println(s);        } catch (NamingException e) {            e.printStackTrace();        }    }}

jndi.properties
Java code
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactoryjava.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfacesjava.naming.provider.url=localhost



补充:
JBoss服务器在Myeclipse内部启动,并通过右键->Add Deployment将EJB项目部署进入JBoss的server/default/deploy/目录
其中部署后目录结构如下:
ejb_01.jar
-----com/feiyu/ejb/FirstEjb.class,com/feiyu/ejb/FirstEjbBean.class
-----META-INF/MANIFEST.MF
另外,我发现在JBoss服务器启动的时候,没有出现加载FirstEjbBean之类的提示,而且无论是deploy还是undeploy该EJB项目,JBOSS服务器控制台都无内容输出,但实际上目录有变化(undeploy时目录消失,deploy时目录出现)


------解决方案--------------------------------------------------------
看不懂啊 ,哥们
------解决方案--------------------------------------------------------
学习~~~~~~~~~~~