JBoss无法识别EAR中的EJB jar

时间:2011-04-22 02:16:03

标签: java-ee jboss ejb-3.0 ejb jboss6.x

我正在尝试将包含和EJB项目的简单测试EAR部署到JBoss AS 6。

我将我的EAR文件复制到JBOSS_HOME / server / default / deploy目录。我可以看到我的SUP.ear出现在企业应用程序(EAR)下的JBoss AS 6管理控制台中,但我没有看到EJB3 jar出现在嵌入式EJB3 JARs 。我没有看到bean在JBoss控制台中加载,也无法访问它们。

我尝试从www.manning.com/panda下载JBoss教程并构建和部署第1章示例,这些bean加载正常,我可以从客户端访问它们而没有任何问题......

以下是我的EAR文件的结构:

SUP.ear
|--META-INF
  |--application.xml
  |--jboss-app.xml
  |--MANIFEST.MF
|--SUP-ejb.jar
  |--com
    |--tomtresansky
      |--sup
        |--server
          |--ejb
            |--CalculatorBean.class
            |--CalculatorLocal.class
            |--CalculatorRemote.class
  |--META-INF
    |--MANIFEST.MF

的Application.xml:

<?xml version="1.0"?>
<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN" "http://java.sun.com/j2ee/dtds/application_1_2.dtd">
<application>
  <display-name>SUP</display-name>
  <module>
    <ejb>SUP-ejb.jar</ejb>
  </module>
</application>

的jboss-app.xml中:

<!DOCTYPE jboss-app PUBLIC "-//JBoss//DTD J2EE Application 1.4//EN" "http://www.jboss.org/j2ee/dtd/jboss-app_4_0.dtd">
<jboss-app>
  <loader-repository>SUP:app=ejb3</loader-repository>
</jboss-app>

两个MANIFEST.MF文件都是这样的:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.6.0_24-b07 (Sun Microsystems Inc.)

类是根据以下源文件构建的:

CalculatorBean.java:

package com.tomtresansky.sup.server.ejb;

import javax.ejb.Stateless;

@Stateless
public class CalculatorBean implements CalculatorRemote, CalculatorLocal {
  @Override
  public int add(final int x, final int y) {
    return x + y;
  }

  @Override
  public int subtract(final int x, final int y) {
    return x - y;
  }
}

CalculatorLocal.java:

package com.tomtresansky.sup.server.ejb;

import javax.ejb.Local;

import com.tomtresansky.sup.shared.Calculator;

@Local
public interface CalculatorLocal extends Calculator {
}

CalculatorRemote.java:

package com.tomtresansky.sup.server.ejb;

import javax.ejb.Remote;

import com.tomtresansky.sup.shared.Calculator;

@Remote
public interface CalculatorRemote extends Calculator {

}

1 个答案:

答案 0 :(得分:1)

好吧,找到了答案......我没有在SUP-ejb.jar中包含com.tomtresansky.sup.shared.Calculator接口。如果JBoss提供了某种类型的错误消息,那将会很好缺少类型...