远程业务接口的Glassfish ejb ref解析错误

远程业务接口的Glassfish ejb ref解析错误,glassfish,ejb-3.0,jndi,Glassfish,Ejb 3.0,Jndi,我已经创建了非常基本的EJB3状态bean,但无法远程访问它。 我得到: 原因:javax.naming.NamingException:ejb ref远程业务接口解析错误com.s9120.ejb.Calculator[根异常为java.lang.ClassNotFoundException:com.s9120.ejb.Calculator] 我有一个bean和一个接口。 看起来没有部署接口(我使用的是GlassFish): 代码如下: package com.calc.ejb; impor

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

原因:javax.naming.NamingException:ejb ref远程业务接口解析错误com.s9120.ejb.Calculator[根异常为java.lang.ClassNotFoundException:com.s9120.ejb.Calculator]

我有一个bean和一个接口。 看起来没有部署接口(我使用的是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();
}
豆子:

访问它:

context = new InitialContext(); 
Calculator calculator = (Calculator) context.lookup("java:global/Zad3_s9120/CalculatorBean");
我是否必须执行一些步骤使接口可用于会话bean?
我使用“添加和删除”服务器菜单从Eclipse中添加它。

从我看到的情况来看,您有不同的软件包

您已将接口定义为:

com.calc.ejb.Calculator 
但您的例外情况告诉您:

com.s9120.ejb.Calculator
也许您的客户机项目中没有合适的类


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

问题是我的客户端上没有正确的“计算器”接口-我只是从EJB复制了一个,所以尽管我的客户端上有接口,但它来自不同的包,因此无法找到。
com.s9120.ejb.Calculator