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