簡體   English   中英

EJB無狀態會話Bean為空

[英]EJB Stateless session bean is null

我正在嘗試從本地服務訪問EJB無狀態會話bean。 但是,當我調用位於Bean上的方法時,會得到一個NPE,因為無狀態Bean為空。

這是代碼:

無味豆:

@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?

謝謝。

我通過添加beans.xml文件解決了這個問題,在我創建項目的那一刻不存在該文件,然后我發現該文件在幾個小時后開始尋找解決方案。

所以我把文件放在WEB-INF目錄中

該文件包含:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>

問題解決了,我可以通過webService訪問bean。

感謝您的幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM