应该不会的吧ejb-jar.xml为
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC
"-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" 
"http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<description>JBoss Hello World Application</description>
<display-name>Hello World EJB</display-name>
<enterprise-beans>
<session>
<ejb-name>HelloWorld</ejb-name>
<home>test.inter.HelloHome</home>
<remote>test.inter.Hello</remote>
<ejb-class>test.bean.HelloBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>jboss.xml为:
<?xml version="1.0" encoding="UTF-8"?>
<jboss>
<enterprise-beans>
<session>
<ejb-name>HelloWorld</ejb-name>
<jndi-name>ejb/hello</jndi-name>
</session>
</enterprise-beans>
</jboss>
这应该没什么错吧,请各位在帮看一下有什么错误,谢谢了

解决方案 »

  1.   

    还在玩儿这个呢?这么多配置文件,晕…
    先装一下jboss-4.0.4.GA-Patch1(下载jboss-4.0.4.GA-Patch1-installer.jar安装EJB3.0),下面用eclipse开发一个类似的入门。注意要打开jdk5.0的特性(Annotation)。创建一个Java项目,要加入这几个包,在<JBOSS_HOME>\client里的
    jbossall-client.jar
    jboss-aop-jdk50-client.jar
    jboss-aspect-jdk50-client.jar
    jboss-ejb3-client.jar
    jboss-ejb3x.jarHello.java(远程接口)
    package examples.session.stateless;import javax.ejb.Remote;
    @Remote
    public interface Hello {
    public String hello();
    }HelloBean.java(Bean的实现)
    package examples.session.stateless;import javax.ejb.Stateless;import org.jboss.annotation.ejb.RemoteBinding;@Stateless
    @RemoteBinding(jndiBinding="ejb/hello")
    public class HelloBean implements Hello { public String hello() {
    System.out.println("hello()");
    return "Hello, World!";
    }}HelloClient.java(测试客户端)
    package examples.session.stateless;import java.util.Properties;import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;public class HelloClient { public static void main(String[] args) throws Exception{
    Context ctx=getInitialContext();
    Hello hello=(Hello)ctx.lookup("ejb/hello");
    System.out.println(hello.hello());
    }

    private static Context getInitialContext() throws NamingException {
    Properties p=new Properties();
    p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
    p.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
    p.put(Context.PROVIDER_URL, "jnp://localhost:1099");
    return new InitialContext(p);
    }}然后把Hello和HelloBean打包到jar文件中,我的是hello.jar,放到<JBOSS_HOME>\server\default\deploy下,会自动部署。我的信息如下:
    20:34:30,015 INFO  [Ejb3Deployment] EJB3 deployment time took: 15
    20:34:30,031 INFO  [JmxKernelAbstraction] installing MBean: jboss.j2ee:jar=hello
    .jar,name=HelloBean,service=EJB3 with dependencies:
    20:34:30,046 INFO  [EJBContainer] STARTED EJB: examples.session.stateless.HelloB
    ean ejbName: HelloBean
    20:34:30,062 INFO  [EJB3Deployer] Deployed: file:/E:/jboss4/server/default/deplo
    y/hello.jar
    这就说明部署成功,看,没有配置文件,需要的信息都在Annotation中了。一看就明白,不用我多说了吧,毕竟这个例子很简单。运行测试客户端,你应该得到如下的输出:
    Hello, World!
    同时,Jboss的控制台会看到:
    20:34:35,578 INFO  [STDOUT] hello()
    怎么样?比EJB2.1的入门简单吧?我觉得简单了很多,以前要用什么EJBHome,EJBRemote……EntityBean的入门也简单多了,JBoss内置了hibernate,有点用Rails的感觉。
    好了,大家一起努力学习吧!推荐个下载电子书的网站:
    http://www.itebookhome.com
      

  2.   

    欢迎加入JAVA(主要是struts,spring,hiberate等一些开源的)开发QQ群14672911,在这里我们相互学习,共同进步,工资一起涨(打广告的,闲聊的免进)