簡體   English   中英

Spring @Inject服務類返回空指針異常

[英]Spring @Inject service class return null pointer exception

我有一個Converter類,在其中使用了以下內容,以便可以使用@Inject訪問我的服務類。

@Named("myMB")
@ViewAccessScoped

但是當我嘗試使用

myservice.getCategories();

我在這一行收到null pointer exception 這可能是什么原因? 我在ManagedBean使用了相同的服務方法來填充selectOneMenu ,但是在Converter類中使用時,卻給了我異常。

轉換器類

@FacesConverter("categoryConverter")
@Named("myMB")
@ViewAccessScoped
public class CategoryConverter implements Converter {

@Inject
CategoryService myservice;

    @Override
        public Object getAsObject(FacesContext facesContext, UIComponent component,
                String value) {
            System.out.println("reached in converter "+value);
            try {


                    List<Category> cat = myservice.getCategories();
                    for (Category cat : category) {
                        if (cat.getCategoryCode() == value) {
                            return cat;
                        }
                    }
                }

            } catch (Exception e) {
                System.out.println("exception from getAsObject  ");
                e.printStackTrace();
            }
            return null;
        }

如果將其用作@FacesConverter實例而不是@Named實例, @FacesConverter發生這種情況。 @Inject@FacesConverter@FacesConverter 擺脫@FacesConverter以避免將來的混亂,並以converter="#{categoryConverter}" (使用@Named )而不是converter="categoryConverter" (使用@FacesConverter )來引用該轉換converter="#{categoryConverter}"

請注意,我假設已正確配置Spring部分,否則它將仍然為null 我不做Spring,所以我不能告訴表單的頂部是否在CDI托管bean而不是Spring托管bean中工作。 我發現將CDI和Spring混合使用,而Spring卻是CDI / EJB的競爭者/替代者,這讓我感到驚訝和可笑。

暫無
暫無

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

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