0
我試圖從本地服務訪問EJB無狀態會話bean。 但是,當我調用位於bean上的方法時,我得到了一個NPE,因爲無狀態bean爲null。EJB無狀態會話bean爲空
下面是代碼:
的sateless豆:
@Startup
@Stateless(name = "LoginBean")
@LocalBean
public class LoginBean {
public List<Long> getItemsForClient(String clientId, Long itemId) {
System.out.println("clientID: " + clientId);
System.out.println("itemID: " + itemId);
List<Long> ret = new ArrayList<Long>();
ret.add((long) 123456);
ret.add((long) 123457);
ret.add((long) 123458);
ret.add((long) 123459);
return ret;
}
}
服務:
@Stateless
@Path("/ctofservice")
public class CtoFService {
@EJB
LoginBean loginBean;
public CtoFService() {
}
@GET
@Produces("text/plain")
@Path("test")
public String convertCtoF() {
Long l = (long) 123456;
List<Long> servicesForClient = loginBean.getItemsForClient("cliID", l);
return itemsForClient.toString();
}
而且ApplicationConfig:
@ApplicationPath("/")
public class ApplicationConfig extends Application {
@SuppressWarnings("unchecked")
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> resources = new java.util.HashSet<Class<?>>();
addRestResourceClasses(resources);
return resources;
}
private void addRestResourceClasses(Set<Class<?>> resources) {
resources.add(CtoFService.class);
}
}
我一直在努力一會兒一會兒尋找可能的解決方案,但沒有出現。
我正在使用JBoss AS 7.1和RESTEasy。
當bean應該被實例化?
謝謝。
您是否需要LoginBean作爲EJB,爲什麼不把它作爲JAX_RS服務。你仍然可以使用CDI。 – user489041
是的,我需要它,因爲當我實現它時,我需要添加更多funcionality。 – javapai
對不起,我的意思是CtoFService。你有它標記爲@Stateless – user489041