Jsf 获取风格列表时出错:java.lang.NullPointerException:新创建目标的URI模板不能为null

Jsf 获取风格列表时出错:java.lang.NullPointerException:新创建目标的URI模板不能为null,jsf,openstack,Jsf,Openstack,我使用JSF开发web应用程序,也使用OpenStack4J与OpenStack一起工作, 在我的bean组件中,我有一个方法: public List<SelectItem> getFlavorList() { List<SelectItem> items = new ArrayList<SelectItem>(); OSClient osClient = OSFactory.builder().endpoint("h

我使用JSF开发web应用程序,也使用OpenStack4J与OpenStack一起工作, 在我的bean组件中,我有一个方法:

public List<SelectItem> getFlavorList() {

         List<SelectItem> items = new ArrayList<SelectItem>();

         OSClient osClient = OSFactory.builder().endpoint("http://xxx.xxx.xxx.xxx:5000/v2.0")
            .credentials("admin", "nova").tenantName("admin").authenticate();

         List<? extends Flavor> flavors = osClient.compute().flavors().list();

         SelectItem item = null;
         for (Flavor flv: flavors){
              item = new SelectItem();
              item.setLabel(flv.getName());
              item.setValue(flv.getId());
         }
         items.add(item);

         return items;
    }

非常感谢您

它似乎在调用FlavorServiceImpl.getFlavorIDList方法,而不是您提到的getFlavorList方法。在jsf中获取列表不需要括号,只要“{flavorBean.flavorList}”应该可以,你是对的,因为在我的flavorBean类中,我从FlavorServiceImpl调用了getFlavorIDList。我尝试在没有括号的情况下调用{flavorBean.getFlavorList},但由于javax.el.PropertyNotFoundException:/create.xhtml@56,61 value={flavorBean.getFlavorList}而导致未找到属性“getFlavorList”的错误:在com.vdco.icloud.openstack.web.servlet.jsf2.FlavorBean类型上找不到属性“getFlavorList”,正如我在第一条评论中提到的,它应该是{FlavorBean.flavorList}。JSF将向它们附加getter。您不需要在那里给出确切的方法名称。
            <h:selectOneMenu value="#{dropletBean.droplet.flavorID}">
               <f:selectItem itemLabel="Please select one size" /> 
               <f:selectItems value="#{flavorBean.getFlavorList()}" />
            </h:selectOneMenu>
java.lang.NullPointerException: URI template of the newly created target must not be null.
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:229)
at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:179)
at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:69)
at org.openstack4j.core.transport.internal.HttpExecutor.invoke(HttpExecutor.java:73)
at org.openstack4j.core.transport.internal.HttpExecutor.execute(HttpExecutor.java:52)
at org.openstack4j.core.transport.internal.HttpExecutor.execute(HttpExecutor.java:43)
at org.openstack4j.openstack.internal.BaseOpenStackService$Invocation.execute(BaseOpenStackService.java:136)
at org.openstack4j.openstack.internal.BaseOpenStackService$Invocation.execute(BaseOpenStackService.java:131)
at org.openstack4j.openstack.compute.internal.FlavorServiceImpl.list(FlavorServiceImpl.java:24)
at com.vdco.icloud.openstack.web.service.impl.FlavorServiceImpl.getFlavorIDList(FlavorServiceImpl.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)