Chyba glassfish server – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Chyba glassfish server – Java – Fórum – Programujte.comChyba glassfish server – Java – Fórum – Programujte.com

 

Jarous0
Duch
11. 6. 2017   #1
-
0
-

Prosím o pomoc s kódem, posílám výpis. 

java.lang.NullPointerException
	at cz.vsb.ekf.kys0030.HlavniServlet.doPost(HlavniServlet.java:53)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283)
	at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
	at java.lang.Thread.run(Thread.java:748)

a kód na který chyba odkazuje

@Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        String vek = request.getParameter("věk");
        String hmotnost = request.getParameter("hmotnost");
        String tep = request.getParameter("tep");
        String cas = request.getParameter("čas");


        Pattern vzor = Pattern.compile("[0-9]+(\\.[0-9]+)?");
        Pattern vzor2 = Pattern.compile("[0-9]+");

        RequestDispatcher dispatcher;
        if (vek.isEmpty() || hmotnost.isEmpty() || tep.isEmpty() || cas.isEmpty() || !vzor2.matcher(vek).matches() || !vzor.matcher(hmotnost).matches() || !vzor.matcher(tep).matches()|| !vzor.matcher(cas).matches()) {
            request.setAttribute("chyba", "Špatně jste vyplnil/a potřebné údaje!");
            dispatcher = getServletContext().getRequestDispatcher("/Vstup.jsp");
        } else {
            CestovniNahrady cestovniNahrady = new CestovniNahrady(Integer.parseInt(vek), Double.parseDouble(hmotnost), Double.parseDouble(tep), Double.parseDouble(cas));
            request.setAttribute("Vystup", cestovniNahrady);

            dispatcher = getServletContext().getRequestDispatcher("/Vystup.jsp");
        }
        dispatcher.forward(request, response);
    }

Chyba odkazuje na řádek s if (vek.isEmpty() .... Prosím o pomoc 

Nahlásit jako SPAM
IP: 80.251.251.–
Kit+15
Guru
11. 6. 2017   #2
-
0
-

#1 Jarous
Snažíš se použít neexistující objekt.

BTW: Ta složená podmínka vypadá šíleně a odporuje běžným zásadám. Nechceš ji trochu zjednodušit? Budou se ti lépe hledat podobné chyby.

Nahlásit jako SPAM
IP: 194.228.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
gna
~ Anonymní uživatel
1891 příspěvků
11. 6. 2017   #3
-
0
-

Asi by nebylo težké podívat se, která z těch proměnných je null. Třeba getParameter vrací null, pokud parametr neexistuje.

Nahlásit jako SPAM
IP: 213.211.51.–
MilanL+1
Grafoman
12. 6. 2017   #4
-
0
-

#1 Jarous
na odhalení problému v podmínce, bych šel stylem testování jednotlivých parametrů.

pro zjednodušení bych si udělal vlastní testovací funkci, kde se mi postupně vstupní string otestuje na Null, Empty i pattern

pak budu mít v podmínce jen if test(vek,pattern) || test{hmotnost,patern) atd pattern bud jako třídu nebo jako string podle toho pak přizpůsobit testovací funkci.

Nahlásit jako SPAM
IP: 91.139.9.–
Kit+15
Guru
12. 6. 2017   #5
-
0
-

#1 Jarous
Na tohle bych šel objektově: 

@Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        try {
            Vek vek = new Vek(request.getParameter("věk"));
            Hmotnost hmotnost = new Hmotnost(request.getParameter("hmotnost"));
            Tep tep = new Tep(request.getParameter("tep"));
            Cas cas = new Cas(request.getParameter("čas"));
            CestovniNahrady cestovniNahrady = new CestovniNahrady(vek, hmotnost, tep, cas);
            response.setAttribute("Vystup", cestovniNahrady);
            RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/Vystup.jsp");
            dispatcher.forward(request, response);
        } catch (Exception $e) {
            response.setAttribute("chyba", $e.getMessage());
        }

    }
Nahlásit jako SPAM
IP: 85.93.112.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
NotBeginner
~ Anonymní uživatel
185 příspěvků
19. 6. 2017   #6
-
0
-

Jak řekly výše, každý parametr v té podmínce v tom servletu předtím otestuj na null. Najdi proč je null a naprogramuj protiopatření aby nic takového nemohlo nastat. Pak to proveď pro všechny parametry.

Nahlásit jako SPAM
IP: 217.112.161.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 28 hostů

Podobná vlákna

Upload na server....kde je chyba? — založil schimpanze

MS SQL Server 2008 -chyba — založil Koky

Netbeans problém s Glassfish — založil sakal91

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý