TheRepatriate
Lt. Junior Grade
- Registriert
- Nov. 2008
- Beiträge
- 258
Hallo ihr Lieben,
also ich wollte gerade wieder ein bischen an meiner meiner kleinen Java EE Application schrauben, anhand derer ich mich gerade ein bischen in die Thematik Web-Apps einarbeite, da bin ich auf einen seltsamen Fehler gestoßen. Vielleicht könnt ihr mir ja helfen
1) Zum Programm: Ich will einfach ein kleines Abstimmungs-Tool für Spiele entwickeln, womit man auf einer Lan-Party schnell mal über das nächste Spiel abstimmen kann. Ich habe bereits implementiert, dass man als Organisator Spiele in eine Datenbank speichern und Abstimmungen starten kann, die aus einer Teilmenge der in der DB gespeicherten Spiele bestehen.
Das "Voting" wird dann an eine CDI-Bean (VotingListProducer) übergeben, welche @ApplicationScoped ist. Nun können Clients über die View "votingList" auf die Abstimmungsliste zugreifen und SOLLTEN auch abstimmen können. Hierzu die View:
Dabei funktioniert es auch, dass die Liste der Spiele angezeigt wird. Man kann ein Spiel auswählen und die Auswahl sollte in die Variable "selectedGame" geschrieben werden. Wenn ich nun aber die CommandButton der View anklicke werden im folgenden Controller nicht die referenzierten Methoden aufgerufen...
Anhand der Systems outs sehe ich, dass der Controller erzeugt wird, er reagiert aber nicht auf die aufgerufenen Methoden bzw., die System outs darin werden nicht aufgerufen. Stattdesen ein anderes Phänomen: Wenn ich in der View kein Spiel selektiert habe bekomme ich beim Drücken auf "Submit" eine NullPointerException(?), wenn ich aber ein Spiel selektiere passiert gar nichts, also kein Methodenaufruf.
Vielleicht habt ihr eine Idee, oder wisst wie ich den Fehler weiter analysieren kann
Vielen Dank im Voraus
Edit: hier noch die Exception die ich bekomme, wenn ich in der Liste kein element auswähle, aber trotzdem "Submit" drücke:
23:42:52,979 Schwerwiegend [javax.faces.event] (http--0.0.0.0-8080-1) Beim Aufrufen des Aktionszielgeräts 'java.lang.NullPointerException' für Komponente '#{votingListController.doAddVoteAktion}' wurde 'j_idt29' erhalten.
23:42:52,980 Schwerwiegend [javax.faces.event] (http--0.0.0.0-8080-1) java.lang.NullPointerException
also ich wollte gerade wieder ein bischen an meiner meiner kleinen Java EE Application schrauben, anhand derer ich mich gerade ein bischen in die Thematik Web-Apps einarbeite, da bin ich auf einen seltsamen Fehler gestoßen. Vielleicht könnt ihr mir ja helfen
1) Zum Programm: Ich will einfach ein kleines Abstimmungs-Tool für Spiele entwickeln, womit man auf einer Lan-Party schnell mal über das nächste Spiel abstimmen kann. Ich habe bereits implementiert, dass man als Organisator Spiele in eine Datenbank speichern und Abstimmungen starten kann, die aus einer Teilmenge der in der DB gespeicherten Spiele bestehen.
Das "Voting" wird dann an eine CDI-Bean (VotingListProducer) übergeben, welche @ApplicationScoped ist. Nun können Clients über die View "votingList" auf die Abstimmungsliste zugreifen und SOLLTEN auch abstimmen können. Hierzu die View:
HTML:
<ui:define name="content">
<h:form id="votingFormID">
<p:selectOneListbox value="#{votingListController.selectedGame}" converter="#{gameConverter}"
var="g" showCheckbox="true" style="width:500px;" >
<f:selectItems value="#{votingListProducer.voting.gameList}" var="game" itemLabel="#{game.name}" itemValue="#{game}" />
<p:column>
<p:graphicImage value="resources/images/#{g.imgSrc}" width="40"/>
</p:column>
<p:column>
#{g.name}
</p:column>
<p:column>
#{g.version}
</p:column>
</p:selectOneListbox>
<p:commandButton value="Submit" actionListener="#{votingListController.doAddVoteAktion}" />
<p:commandButton value="Zeige selektierte List" actionListener="#{votingListController.doPrintSelectedGames}"/>
</h:form>
<ui:define>
Dabei funktioniert es auch, dass die Liste der Spiele angezeigt wird. Man kann ein Spiel auswählen und die Auswahl sollte in die Variable "selectedGame" geschrieben werden. Wenn ich nun aber die CommandButton der View anklicke werden im folgenden Controller nicht die referenzierten Methoden aufgerufen...
Code:
@SessionScoped
@Named
public class VotingListController implements Serializable{
private static final long serialVersionUID = -7222543653854660316L;
private Game selectedGame;
@Inject @AddedChoice
private Event<Game> addChoiceEventSrc;
public void doAddVoteAktion (){
System.out.println("Ich komm hier rein, Spiel ist: "+getSelectedGame().getName());
if (selectedGame!=null){
addChoiceEventSrc.fire(selectedGame);
//setSubmitDeaktivated(true);
}
}
@PostConstruct
public void init(){
System.out.println("Ich werde initialisiert");
}
public void doPrintSelectedGames(){
System.out.println("doPrint wird ausgeführt");
if (selectedGame!=null){
System.out.println(selectedGame.getName());
}
}
public Game getSelectedGame() {
return selectedGame;
}
public void setSelectedGame(Game selectedGame) {
this.selectedGame = selectedGame;
}
}
Vielleicht habt ihr eine Idee, oder wisst wie ich den Fehler weiter analysieren kann
Vielen Dank im Voraus
Edit: hier noch die Exception die ich bekomme, wenn ich in der Liste kein element auswähle, aber trotzdem "Submit" drücke:
23:42:52,979 Schwerwiegend [javax.faces.event] (http--0.0.0.0-8080-1) Beim Aufrufen des Aktionszielgeräts 'java.lang.NullPointerException' für Komponente '#{votingListController.doAddVoteAktion}' wurde 'j_idt29' erhalten.
23:42:52,980 Schwerwiegend [javax.faces.event] (http--0.0.0.0-8080-1) java.lang.NullPointerException
Zuletzt bearbeitet: