1

EJB我尝试在我的应用程序客户端中注入无状态,但出现以下错误

严重:准备应用程序时出现异常:无法加载 EJB 模块。DeploymentContext 不包含任何 EJB。检查存档以确保正确打包 C:\glassfish3\glassfish\domains\domain1\applications\EJB。

如果您使用 EJB 组件注释来定义 EJB,并且还使用了 ejb 或 Web 部署描述符,请确保部署描述符引用 Java EE 5 或更高版本的模式,并且元数据完整属性未设置为true,因此可以按预期处理组件注释

我的客户是这样定义的:

@EJB
private static Sless sless;
public static void main(String[] args) {
    System.out.println("Sless says: " + sless.hello());
}

该类Sless是我的接口,它是这样定义的:

@Remote
public interface Sless {
    public String hello();
}

我也有一个类实现Sless

@Stateless
public class SlessBean implements Sless{
    @Override
    public String hello() {
        return "hello, world!\n";
    }    
}

任何有关问题出在哪里的帮助将不胜感激。

4

1 回答 1

4

1) Standalone clientsnon-managed POJOs(不由容器维护的POJO)不支持注解注入。所以@EJB行不通。

2)你必须从你的独立客户端做一本手册。 JNDI look up

你需要什么?

1)你的EJB扩展Remote接口。因为Local接口不暴露EJB跨应用程序远程调用。

2)独立客户端中的依赖jar文件。IE: ORB Jar

3)您需要知道RMI/IIOP服务器上的端口。

4)您还必须注意是否使用不同的Standalone clientJDK /JRE 实现。例如: 1 using和其他 using 。Server SUN JDKIBM JDK

EJBStandalone client按照这个从>> https://glassfish.java.net/javaee5/ejb/EJB_FAQ.html#StandaloneRemoteEJB连接到Glassfish

于 2013-05-16T03:54:09.950 回答