16. maj 2001 - 13:01Der er
8 kommentarer og 2 løsninger
Tomcat context problem
Jeg har et problem med Tomcat som jeg bruger til nogle servlets.
Jeg har en applikation under \"tomcat/webapps/webclient\", hvilket fungerer fint (når man i en browser starter localhost/webclient), men hvis en bruger taster en forkert URL ind så går det galt, hvis feks. en bruger feks. blot starter \"localhost\" i browseren, så får jeg følgende:
Error: 500 Location: / Internal Servlet Error:
java.lang.NullPointerException at org.apache.tomcat.util.FileUtil.isAbsolute(FileUtil.java:289) at org.apache.tomcat.core.Context.getAbsolutePath(Context.java:257) at org.apache.tomcat.core.Context.getRealPath(Context.java:791) at org.apache.tomcat.request.StaticInterceptor.requestMap(StaticInterceptor.java:191) at org.apache.tomcat.core.ContextManager.processRequest(ContextManager.java:820) at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:771) at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743) at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210) at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416) at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498) at java.lang.Thread.run(Unknown Source)
Hvilket jo ikke er specielt pænt overfor brugeren. Jeg ville i stedet gerne enten vise en \"error\" side jeg selv har lavet, eller simpelthen redirecte alle url\'s der ikke eksisterer, til /webclient.
Hvordan gør jeg det?
Så vidt jeg har forstået, så er det noget med at jeg skal oprette en ekstra context i server.xml, hvilket jeg også har gjort:
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
> Hvis du absolut vil bruge tomcat, brug den sammen med Apache istedet.
Hvorfor? Til det behov jeg har, ser jeg absolut ingen grund til det?
> Men endnu bedre ville være at bruge apache + resin (www.caucho.com) det er langt bedre.
Den koster penge, så det er ikke umiddelbart noget jeg kan bruge, desværre.
> Hvordan du gør de ting kan jeg ikke huske, da jeg forlængst har droppet Tomcat pga. dårlig performance + \'opførsel\'
Hvad er det for en \'opførsel\' du snakker om? Tomcat har fungeret ret godt her, lige med undtagelse af dette, så har jeg faktisk ikke haft de store problemer med den.
>dit behov må være meget minimalt siden du ikke skal bruge en webserver. > Resin koster kun penge hvis du bruger den kommerciel, og siden du ikke skal have webserver går du nok ikke.
Hvis man kun skal servere servlets, hvorfor så have en webserver? Jeg ser ingen grund til at skulle bøvle med Apache eller lignende, når Tomcat klarer sig fint uden?
Og hvad hvis man skal bruge den kommercielt? Det bliver hurtigt dyrt hvis jeg skulle distribuere mange web applikationer! Du kender ikke min situation og kan derfor heller ikke vide om jeg har økonomisk mulighed for at benytte Resin. Hvis jeg finder noget der er bedre en Tomcat (hvilket Resin tilsyneladende er), så vil jeg da selvfølgeligt benytte det, men i øjeblikket har jeg blot ikke mulighed for at bruge Resin pga. licensen.
> Tomcat er langsom, den skoder i handling af sessions stacken, og dropper til tider data på stacken uden grund, og skal tit restartes.
Er det noget du kan uddybe? Hvilken version af Tomcat har du brugt?
> Og sidst men ikke mindst den er tydeligt bevis på at open source ikke altid er godt, den er hamrende elendigt dokumenteret.
Det vil jeg godt give dig ret i og det synes jeg faktisk er lidt dårligt af Sun - de har det som deres reference implementation, derfor burde de også sørge for at Tomcat var ordentligt dokumenteret, osv.
/Pointwood - der stadigt søger et svar på sit problem... :)
Jeg kan ikke huske hvilken version det var, men det er ca. 3 måneder siden, og var dengang den nyeste version der var \'stable\'
Nu er det jo ikke SUN der laver Tomcat, det er et open source projekt hvor du selv kan være med hvis du gider.
Men alle de dygtige arbejder jo på rigtige programmer (kommercielle) så derfor er der ikke det helt vilde opbakning bag Tomcat. Problemmet er nærmere at dem der endelig gider rode med open source, ikke gider lave dokumentation, hvilket er grunden til jeg ikke gider bøvle med open source overhovedet.
Men at Tomcat er reference implementationen er jo ingen garanti for at den er den bedste, men kun at den kan de SUN siger en reference implementation skal kunne.
Forresten, siden du kun bruger servlets, er det fordi du får dine servlets til at spytte HTML kode ud ?
Hvis du gør dette skulle du virkelig tage og kigge på JSP. Så kan du nemlig følge det såkaldte Model View Controller design pattern, hvor man adskiller GUI, kode og lagring fra hinanden, og derfor for langt bedre og mere overskueligt kode.
Hvis man nemlig spytter html ud fra en servlets, er det ikke nemt for en webdesigner at tilpasse det i f.eks. dreamweaver.
Det er rigtigt, at det ikke er Sun der laver Tomcat, men de havde tidligere deres egen reference implementation, som de droppede til fordel for Tomcat. Derfor mener jeg man bør kunne forvente at de havde nogle folk der arbejder på Tomcat siddende. De må da have en vis interesse i at Tomcat fungerer rimeligt tilfredsstillende, vil jeg mene.
Jeg vil ikke give dig ret i at alle de dygtige arbejder på \"rigtige programmer\" - mærkeligt udtryk i øvrigt, hvad er rigtige programmer? - hvorfor er Open Source programmer ikke \"rigtige\"? Mener du dermed at dem der arbejder på Apache, Linux, xBSD, Samba, etc. er amatører?
Grunden til den manglende opbakning af Java/Tomcat ligger nærmere i den måde Sun har opført sig overfor Open Source verdenen. Deres modstræben mod at gøre Java til en officiel/åben ISO (eller lign.) standard, samt flere andre ting.
Jeg vil give dig ret i at dokumentation er et af de svage punkter ved Open Source, men til gengæld mener jeg der er utroligt mange andre gode punkter.
Mht. JSP, så har du helt sikkert ret, jeg har kun benyttet Servlets indtil nu, men det har været pga. et ønske (fra \"højere sted\"...) om at kildekoden skulle være \"lukket\". Hvis du har nogle gode link til introdutioner af JSP og hvordan man bruger det sammen med Servlets, så er jeg meget interesseret.
Jeg er dog endnu mere interessseret i at få løst mit problem :-)
Det jeg mener med rigtige programmører, er folk der arbejder for firmaer. Og ikke bare laver det for sjov skyld. Ideen om at software skal være gratis er totalt absurt. Jeg er sikker på at når open source firmaerne har fået markedsandele begydner de at tage penge for software for ellers overlever de ganske enkelt ikke.
Open source er en idealistisk tankegang der i teorien er god, men ikke i virkeligheden (ligesom kommunisme).
Jeg skal nok kigge på om jeg kan finde en løsning på dit problem.
Der er mange folk der er ansat af firmaer til at arbejde på diverse open source programmer.
Jeg er ikke enig med dig i at open source ikke kan fungere. Du har desuden fået det lidt galt i halsen mht. at softwaren skal være gratis - fri software != gratis. At det ofte er tilfældet er noget andet. Der er ingen der siger at du ikke må tage penge for open source programmer. En \"Linux producent\" må gerne tage penge for sin distribution - der er allerede nogen der gør det - det koster således en mindre sum at downloade den nyeste version af deres distribution. En af de ydelser feks. Redhat leverer, er at sammensætte en distribution og laver Q&A af det inden de smider det på markedet.
Open source går bla. ud på at sælge tillægsydelser (support, etc.) til programmerne. Firmaer vil have et sted de kan henvende sig til når/hvis der er et eller andet det går galt.
Jeg mener ikke alt open source licenserne/strategierne er velegnet til alle former for software. Software der er beregnet til en meget lille brugerskare og til at løse et meget specifik problem, har muligvis/sandsynligvis ikke nogen fordel af open source. For mange andre former for software, feks. operativsystemer, er det efter min mening, en stor fordel. Se blot hvordan IBM samarbejder med Linux og Apache folkene.
Fri/open source software != kommunisme. Du kan ikke sammenligne disse to. At sige at fri software ikke fungerer mere eller mindre det samme som at sige at internettet ikke fungerer - en meget stor del af det software der holder internettet \"kørende\" er fri software.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.