远程业务接口(interface)的 Glassfish ejb 引用解析错误

标签 glassfish ejb-3.0 jndi

我已经创建了非常基本的 EJB3 有状态 bean,但无法远程访问它。 我得到:

Caused by: javax.naming.NamingException: ejb ref resolution error for remote business interfacecom.s9120.ejb.Calculator [Root exception is java.lang.ClassNotFoundException: com.s9120.ejb.Calculator]

我有 1 个 bean 和 1 个接口(interface)。 看起来接口(interface)没有部署(我使用的是 GlassFish): 这是代码:

package com.calc.ejb;

import javax.ejb.Remote;

@Remote
public interface Calculator {

    public Double multiply(Double multiplier, Double multiplicand);
    public Double divide(Double dividend, Double divisor);
    public Double add(Double addend, Double augend);
    public Double subtract(Double minuend, Double subtrahend);

    public void saveToMemory(Double number);
    public Double retrieveFromMemory();
}

bean 类:

package com.calc.ejb;

import javax.ejb.Remote;
import javax.ejb.Stateful;

/**
 * Session Bean implementation class CalculatorBean
 */
@Stateful
@Remote(Calculator.class)
public class CalculatorBean implements Calculator{
/* Implementation */
}

访问它:

context = new InitialContext(); 
Calculator calculator = (Calculator) context.lookup("java:global/Zad3_s9120/CalculatorBean");

我是否必须执行一些步骤才能使接口(interface)对 session bean 可用? 我使用“添加和删除”服务器菜单从 Eclipse 添加它。

最佳答案

据我所知,您有不同的包。

您已将接口(interface)定义为:

com.calc.ejb.Calculator 

但是您的异常告诉您:

com.s9120.ejb.Calculator

也许您的客户项目中没有合适的类?

顺便说一句:您不需要在接口(interface)和 EJB 上都指定 @Remote。您只能在 EJB 上执行 @Remote(MyClass.class) 或在接口(interface)上执行 @Remote

关于远程业务接口(interface)的 Glassfish ejb 引用解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9057375/

相关文章:

java - 主动 MQ、JNDI、Spring 错误

ssl - Glassfish 3.1.2.2 在 SSL 终止负载平衡器后面

Glassfish v3 集群配置类路径库

java - 无法使用Glassfish部署War文件

netbeans - Netbeans 创建 Glassfish 域的管理员用户和密码?

web-applications - 使用 EJB 3.0、JPA、JBoss 上的动态 Web 项目的 Java EE 应用程序的项目架构/组织

java - 消息驱动 Bean 的过滤器类

java - Spring Boot Weblogic 12c JNDI 数据源 : injection not working gives NullPointerException

java - 如何告诉 Seam 注入(inject)本地 EJB 接口(interface)(SLSB)而不是远程 EJB 接口(interface)(SLSB)?

java - 如何从Java代码中读取JNDI值?