先声明,本人初学ejb3,问的问题白痴,别拍.
补充一点,问题为100分,如果谁帮我解决,追加100分。
因为我担心这个帖子也会无下文,之前有四个人发过同样的问题。
http://topic.csdn.net/u/20080526/02/1DE6F4F8-B084-4D09-A067-C19CE13CFFBC.html
http://topic.csdn.net/u/20080911/19/D5342302-8887-4DE9-8CDA-38501D262400.html
http://topic.csdn.net/u/20081106/10/326AD298-1BA5-44B5-91CD-EDBC79671D5F.html
http://topic.csdn.net/u/20090115/18/D4D3E1E1-E232-4C5F-90C6-EFED53824D62.html
我的目的:
http://blog.sina.com.cn/s/blog_5f5fff010100cmc0.html
这篇帖子里讲述了如何用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
package com.feiyu.ejb;
public interface FirstEjb {
public String saySomething(String name);
}
FirstEjbBean
package com.feiyu.ejb;
import javax.ejb.Remote;
import javax.ejb.Stateless;
@Stateless
@Remote
public class FirstEjbBean implements FirstEjb {
public String saySomething(String name) {
return "Hello, " + name;
}
}
=====================>
测试类,注意,虽然包名相同,但与上面是位于不同的项目,上面是EJB项目,这里是Java Project(所以采用的是@Remote)
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.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.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时目录出现)