I'm trying to invoke a <f:ajax listener> method on change of <h:selectOneMenu>.
This is the view:
<h:selectOneMenu label="verteilerlisten" 
    value="#{smsBean.verteilerliste}" id="verteilerlisten">
    <f:ajax listener="#{smsBean.verteilerlistenChanged}" 
        render="verteilerlisten" />
    <f:selectItems value="#{verteilerlisten.list}" 
        var="v" itemLabel="#{v.name}" itemValue="#{v.verteilerlistennummer}" />
</h:selectOneMenu>
This is the #{smsBean}:
public void verteilerlistenChanged(AjaxBehaviorEvent e) {
    System.out.println("success!");
    throw new RuntimeException("Success!");
}
The items are displayed correctly, but nothing happens when I change the item in the select box. How is this caused and how can I solve it?
EDITED:
I created a blank xhtml file (test.xhtml) with the following code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
<h:head />
<h:body>
    <h:form id="smsform">
        <h:selectOneMenu label="verteilerlisten" value="#{smsBean.verteilerliste}"
                         id="verteilerlisten">
            <f:selectItems value="#{verteilerlistenBean.list}" var="v"
                           itemLabel="#{v.name}" itemValue="#{v.verteilerlistennummer}"/>
            <f:ajax listener="#{smsBean.verteilerlistenChanged}" render="smsform"/>
        </h:selectOneMenu>
    </h:form>
</h:body>
</html>
This is the VerteilerlistenBean.java:
@ManagedBean(name= "verteilerlistenBean")
@ApplicationScoped
public class VerteilerlistenBean {
  private Logger logger = Logger.getLogger(VerteilerlistenBean.class);
  private List<Verteilerliste> list = new ArrayList<Verteilerliste>();
  public VerteilerlistenBean() {
  }
  public List<Verteilerliste> getList() {
    // return list;
    logger.info("Getter invoked");
    List<Verteilerliste> list = new ArrayList<Verteilerliste>();
    list.add(new Verteilerliste(1, "Liste 1"));
    list.add(new Verteilerliste(2, "Liste 2"));
    list.add(new Verteilerliste(3, "Liste 3"));
    list.add(new Verteilerliste(4, "Liste 4"));
    list.add(new Verteilerliste(5, "Liste 5"));
    return list;
  }
  public void setList(final List<Verteilerliste> parList) {
    list = parList;
  }
}
And this is the smsBean (SendSMSFormBean.java):
@ManagedBean (name="smsBean")
@ViewScoped
public class SendSMSFormBean implements Serializable {
  private String absender;
  private Verteilerliste verteilerliste;
  private Textbaustein textbaustein;
  public SendSMSFormBean() {
  }
  public String getAbsender() {
    return absender;
  }
  public void setAbsender(final String parAbsender) {
    absender = parAbsender;
  }
  public Verteilerliste getVerteilerliste() {
    return verteilerliste;
  }
  public void setVerteilerliste(final Verteilerliste parVerteilerliste) {
    verteilerliste = parVerteilerliste;
  }
  public Textbaustein getTextbaustein() {
    return textbaustein;
  }
  public void setTextbaustein(final Textbaustein parTextbaustein) {
    textbaustein = parTextbaustein;
  }
  public void verteilerlistenChanged(AjaxBehaviorEvent e) {
    System.out.println("Success!");
  }
}
These are my libs I use:
(I can't upload image -.- )
- javassist-3.15.0-GA.jar
- javax.faces-2.0.11.jar
- javax.servlet-5.1.12.jar
- javax.servlet-api-3.0.1.jar
- javax.servlet.jar
- javax.servlet.jsp.jstl-1.2.1.jar
EDITED 2
I cleaned my classpath lib so that all these classes aren't inside there anymore (it uses the libs from tomcat now). I also added a in the plain example (i got a in the main example). But still everytime I change the value in the selectBox in the console appears:
2014-01-21 16:03:48 INFO  VerteilerlistenBean:44 - Getter invoked
EDITED 3
When changing f:ajax listener attribute to "#{asdf.asdf}. No error was shown! Before that I tried #{smsBean.verteilerlistenChanged} and ${smsBean.verteilerlistenChanged}
EDITED 4 So now I think I got the mistake:
<div class="ym-fbox">
<h:selectOneMenu label="verteilerlisten" id="verteilerlisten">
    <f:selectItems value="#{testbean.list}" var="v" itemLabel="#{v.name}" itemValue="#{v.id}"/>
    <f:selectItem itemLabel="Manuelle Eingabe" itemValue="man"/>
    <f:ajax listener="#{testbean.beep}" render="smsform"/>
</h:selectOneMenu>
</div>
<div class="ym-fbox">
<h:selectOneMenu label="verteilerlisten1" id="verteilerlisten1" value="#{smsBean.verteilerliste}">
    <f:selectItems value="#{verteilerlistenBean.verteilerlisten}" var="liste" itemLabel="#{liste.name}" itemValue="#{liste.verteilerlistennummer}" />
    <f:selectItem itemLabel="Manuelle Eingabe" itemValue="man"/>
    <f:ajax listener="#{testbean.beep}" render="smsform"/>
</h:selectOneMenu>
</div>
The upper one invokes testbean.beep when changed the other one doesn't! It would work if you remove attribute "value" in selectOneMenu. I don't know why JSF does this or why it doesn't show me any error..
But that doesn't solve my problem: I have 2 Beans. One is a Bean, that safes the inputs in the form (smsBean). The select Value should be saved in this bean. The other bean is something like a RessourceManager, which returns the values that the user can select in the box.
How do I make this?
