Wpis z mikrobloga

Jakiś mirek pomoże z servletami ? mam problem odpalić takiego swoistego hello worlda na tomcacie. Polega to na tym że mam stronkę w html gdzie wybiera się element z listy,zatwierdza przyciskiem ( wysyła POST) i na następnej stronie powinno mi wyświetlić co zostało wybrane ale wywala: java.lang.NullPointerException
Przejrzałem już te kody wzdłuż i wszerz i nie wiem co jest źle, serwer jest dobrze skonfigurowany bo przykładowe servlety odpala. kod:
form.html ( czyli ta strona z rozwijana lista) : http://wklej.org/id/1762165/
web.xml : http://wklej.org/id/1762166/
WyborPiwa.java : http://wklej.org/id/1762167/
pełny kod błędu : http://wklej.org/id/1762168/
Sprawdzałem już problemy z kodowaniem w stylu że edytor ustawia inne niż jest wpisane w pliku i to nie to :/
Na stacku znalazłem że nullpointer oznacza niby problem w pliku web.xml ale za cholerę nie widzę tam nic co może być źle :/
Kod kompiluję z konsoli poleceniem javac -cp .\..\..\..\..\lib\servlet-api.jar com\example\web\WyborPiwa.java
Kompiluje się prawidłowo, tworzy plik class.
#java #tomcat #html #programowanie #naukaprogramowania #xml #servlet
  • 14
@pierre-van-hooijdonk:
1 ścieżki już sprawdzałem kilkukrotnie, wydaje mi się że wszystko jest okej ale jestem troche zielony w temacie tego tomcata, także możesz pytać. W katalogu webapps tomcata mam folder z projektem. Następnie w folderze WEB-INF mam web.xml, a plik javy w classes>com>example>web.
2 zmieniłem w form. html action="WybierzPiwo.do"> na "WybierzPiwo" oraz w web.xml na
/WybierzPiwo , zmienia to dane w przeglądarce( w sensie odnosi się do linku bez kropki ale
Ta linijka błędu:org.apache.catalina.loader.WebappClassLoaderBase.binaryNameToPath(WebappClassLoaderBase.java:2502)
oznacza, że problem jest w 100% w poplątanych ścieżkach do klas.

Spróbuj jeszcze coś takiego - skasuj deklaracje servletu i jego mapowanie z web.xml.
Zamiast tego nad deklaracją klasy servletu w pliku tejże klasy dodaj @WebServlet("/wybierzpiwo")
Pamiętaj żeby też w formularzu zmienić wartość atrybutu action dla formularza.
@Godziu73: Tak.

Ewentualnie możesz jeszcze spróbowac skopiowac jara: \lib\servlet-api.jar z folderu głównego tomacata do katalogu WEB-INF/lib - ale skoro inne servlety działały to raczej nie tu jest problem.