2012-01-29 42 views
1

裁判解析錯誤我已經創建了非常基本的EJB3狀態bean,但不能遠程訪問它。 我越來越:Glassfish的EJB遠程業務接口

造成的:javax.naming.NamingException中:爲遠程業務interfacecom.s9120.ejb.Calculator [根異常EJB參考解析錯誤是拋出java.lang.ClassNotFoundException:com.s9120.ejb .Calculator]

我有1種豆和1個接口。 它看起來像接口不部署(我使用的是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(); 
} 

豆:

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"); 

待辦事項我必須做一些步驟來使會話bean可用的接口? 我使用「添加和刪除」服務器菜單從Eclipse中添加它。

回答

4

從我所看到的,你有不同的包。

你定義的接口:

com.calc.ejb.Calculator 

但你的異常告訴你:

com.s9120.ejb.Calculator 

也許你沒有合適的類在客戶端的項目嗎?

BTW:你並不需要指定兩個@Remote - 接口和EJB。您只能在EJB上執行@Remote(MyClass.class)或在界面上執行@Remote

+2

的問題是,我沒有我的客戶端上正確的「計算器」的界面 - 我只是複製一個從EJB,所以雖然我因此不能發現我的客戶機上的接口它是從不同的包。 – Leonti 2012-01-30 18:37:05

相關問題