我有兩個應用程序在我的本地glassfish服務器上運行。一個租bicylces和一個買火車票。我現在想從列車應用程序中調用一個遠程ejb,以允許在選定時間租用自行車,但我不確定如何去做。我已經嘗試了幾種不同的方法。這兩個應用程序都在不同的包中,列車應用程序必須知道自行車遠程接口,但我不知道如何實現。如何從同一個GlassFish服務器上的其他應用程序注入EJB?
遠程接口(bicyle應用程序):
@Remote
public interface FahrradRemote {
public List<Fahrrad> findAvaible(Date start, Date end);
public void addAuftrag(Fahrrad fahrrad, Date startDate, Date endDate);
public boolean login(String name, String passwort);
}
自行車EJB我想打電話:
@Stateless(name="FahrradService",mappedName="FahrradService")
public class FahrradService implements javax.ejb.SessionBean, FahrradRemote, Serializable {
@PersistenceContext
private EntityManager em;
Kunde customer;
...
}
開頭的列車應用程序:
@Named
@SessionScoped
public class BahnPM implements Serializable {
private String startStation;
private String zielStation;
private String loginName;
private String loginPasswort;
private String customerName;
private String startDateString;
private Date startDate;
private List<Fahrt> available;
private List stations;
@EJB
private BahnService service;
@EJB(mappedName="FahrradService")
private static FahrradRemote fahrradService;
public BahnPM() {
}
...
}
錯誤我得到的是一個沒有發現異常的類,我可以理解,因爲它是一個不同的應用程序,我的火車應用程序不知道「FahrradRe mote「,但我該如何注入該EJB?
我認爲你需要包括含'FahrradRemote'類作爲你在哪裏注入它的其他應用程序的依賴罐子。 – Santosh 2012-08-11 18:06:18
@Santosh我不這麼認爲,客戶端不應該需要它調用的類 - 有點違背了RMI的觀點。我不知道解決方案,但我希望沒有必要將字面上包含服務器端.class文件與客戶端... – Thufir 2014-09-13 07:11:38