Toon posts:

[tomcat]servlet

Pagina: 1
Acties:
  • 125 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
ik ben al een uur bezig om een servlet aan de praat te krijgen in tomcat!!

ik heb alle docs van tomcat doorgekeken, ik heb de got search gebruikt maar ik kom er niet uit.

waar moet ik mijn class files zetten?
wat moet ik nog meer doen om dan gewoon door bijv. naar [url="http://localhost:8080/hello"]http://localhost:8080/hello[/url] te gaan iets werkends te zien??...


graag zsm iemand??.. :'(

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Servlets = programming (imho)
je moet je files in webapps zetten en dan in de map root.

Verwijderd

Topicstarter
daar staan ze, maar het doen niets.

in die docs zeggen ze ook van alles over WEB-INF etc. wat moet ik daarmee?

ik heb 'm een tijd geleden wel een keer aan de praat gekregen maar het lukt me nu op een of andere manier gwoon not.. :(

  • Juup
  • Registratie: Februari 2000
  • Niet online
Allereerst, als je naar [url="http://localhost:8080/"]http://localhost:8080/[/url] gaat, zie je dan iets? Zo ja: klik daar eens rond en kijk hoe die servlets en jsp's daar aangeroepen worden en in welk pad ze staan.
Zo nee: installeer & start tomcat ;)

Vervolgens maak je je eigen dir 'mijndir', die je ook toevoegt in conf/server.xml helemaal onderaan, gewoon copieren wat er al staat over examples en dan je eigen info invullen.

Dan maak je in de 'mijndir' een WEB-INF dir aan en daarin een classes dir en daar zet je je servlet classes in. Zie ook http://apache.org/

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


  • ycode
  • Registratie: Februari 2000
  • Laatst online: 31-08 13:15
Een webapp is een aantal JSP pagina's met daarbij horende classes...

zo zit het:

/webapps : de jsp pagina's met directories.
/webapps/WEB-INF/classes : de .class files in bijvoorbeeld nl/packagenaam/ geplaatst.

/webapps/WEB-INF/lib : de .jar files waar ook .class files in kunnen staan.

succes !

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op vrijdag 16 november 2001 15:24 schreef webskipper het volgende:
daar staan ze, maar het doen niets.

in die docs zeggen ze ook van alles over WEB-INF etc. wat moet ik daarmee?

ik heb 'm een tijd geleden wel een keer aan de praat gekregen maar het lukt me nu op een of andere manier gwoon not.. :(
in de WEB-INF moet het bestand web.xml staan gewoon met een leef root-element bv:
code:
1
<site></site>

dan moet je tomcat herstarten en kijken of root geladen wordt bij de contexten

  • ycode
  • Registratie: Februari 2000
  • Laatst online: 31-08 13:15
Dit is een voorbeeld van een web.xml
is idd ook nodig.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">

<web-app>
    <display-name>Webapp name</display-name>
    <description>Webapp description</description>
    
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
      
    <servlet>
        <servlet-name>icon</servlet-name>
        <servlet-class>nl.package.IconServlet</servlet-class>
    </servlet>

</web-app>

Verwijderd

Ik werk al een tijdje met tomcat3.2, nu wilde ik ff snel tomcat4.01 installeren op een andere computer, werkende krijgen was geen probleem, maar servlets compileerde niet, waarom heeft tomcat4 geen servlet.jar meer ? (of waar staat die? :))

Verwijderd

Topicstarter
nu doet die directory die ik aan gemaakt heb en in server.xml heb gezet doet het, alleen staat er niets in de directory listing, dus dat gedoe met die web.xml doet het nog niet goed... :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">

<web-app>
    <display-name>Webapp name</display-name>
    <description>Webapp description</description>
      
    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>hello</servlet-class>
    </servlet>

</web-app>

  • ycode
  • Registratie: Februari 2000
  • Laatst online: 31-08 13:15
de servlet class moet ook de package naam bevatten waar de class, dus nl.pietje.hello

Is de classnaam niet toevallig met een hoofdletter? Hello
dus ??

Verwijderd

Topicstarter
dit is mijn hello.java code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public final class hello extends HttpServlet {

    public void doGet(HttpServletRequest request,HttpServletResponse response)
    throws IOException, ServletException {

    response.setContentType("text/html");
    PrintWriter writer = response.getWriter();

    writer.println("<html>");
    writer.println("<head>");
    writer.println("<title>Hello</title>");
    writer.println("</head>");
    writer.println("<body bgcolor=white>");
    writer.println("Hello World!");
    writer.println("</body>");
    writer.println("</html>");
    }
}

dit is mijn web.xml inhoud:
code:
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">

<web-app>
    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>hello</servlet-class>
    </servlet>    
</web-app>

maar het werkt niet.. :'(

id??..

  • Onno
  • Registratie: Juni 1999
  • Niet online
Standaard is de url om een servlet te benaderen "/servlet/naam" meen ik. Als je "/naam" wilt gebruiken moet je een mapping maken in web.xml:
code:
1
2
3
4
5
6
7
8
    <servlet-mapping>
      <servlet-name>
        hello
      </servlet-name>
      <url-pattern>
        /hello
      </url-pattern>
    </servlet-mapping>

Iets dergelijks.

  • Onno
  • Registratie: Juni 1999
  • Niet online
Op vrijdag 16 november 2001 15:40 schreef Snow-in-a-can het volgende:
Ik werk al een tijdje met tomcat3.2, nu wilde ik ff snel tomcat4.01 installeren op een andere computer, werkende krijgen was geen probleem, maar servlets compileerde niet, waarom heeft tomcat4 geen servlet.jar meer ? (of waar staat die? :))
In $CATALINA_HOME/common/lib/servlet.jar?

Verwijderd

Topicstarter
die met mapping werkt ook niet.. :(

dit is de foutmelding: (bij alle 2 de manieren)

"The requested resource (/myfirst/hello) is not available."

  • Onno
  • Registratie: Juni 1999
  • Niet online
En je hebt hello.class in WEB-INF/classes staan?

  • Onno
  • Registratie: Juni 1999
  • Niet online
Werken statische bestanden die je in de root van je webapp zet wel? (dus /myfirst/blabla.html ofzo)

Verwijderd

Topicstarter
laatste hoop.
even alles op een rijtje:

directory:
D:\webserver\tomcat\webapps\myfirst\WEB-INF\classes

class naam:
hello.class

inhoud web.xml:
code:
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">

<web-app>
    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>hello</servlet-class>
    </servlet>    
</web-app>

inhoud hello.java:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public final class hello extends HttpServlet {

    public void doGet(HttpServletRequest request,HttpServletResponse response)
    throws IOException, ServletException {

    response.setContentType("text/html");
    PrintWriter writer = response.getWriter();

    writer.println("<html>");
    writer.println("<head>");
    writer.println("<title>Hello</title>");
    writer.println("</head>");
    writer.println("<body bgcolor=white>");
    writer.println("Hello World!");
    writer.println("</body>");
    writer.println("</html>");
    }
}

url waarop ik het bekijk:
[url="http://localhost:8080/myfirst/hello"]http://localhost:8080/myfirst/hello[/url]

error:
The requested resource (/hello) is not available.

Verwijderd

Topicstarter
Op vrijdag 16 november 2001 16:53 schreef Onno het volgende:
Werken statische bestanden die je in de root van je webapp zet wel? (dus /myfirst/blabla.html ofzo)
ja, ik heb een index.html in de root staan (dus in de myfirst directory)

edit:

en die werkt dus

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Het is altijd beter om Java klassenamen met een hoofdletter te beginnen (dat is standaard). Maar dit zou het probleem niet mogen veroorzaken...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op vrijdag 16 november 2001 16:56 schreef webskipper het volgende:
En de web.xml staat in die WEB-INF dir ?

[edit]
En probeer die servlet-mapping van Onno nog even.

Verwijderd

Topicstarter
ok. bij die servlet mapping krijg ik een foutmelding ibj het opstarten van tomcat:

ERROR reading java.io.ByteArrayInputStream@77a7f9
At Line 14 /web-app/servlet-mapping/
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">

<web-app>
    <servlet-mapping>
      <servlet-name>
        hello
      </servlet-name>
      <url-pattern>
        /hello
      </url-pattern>
    </servlet-mapping>  
</web-app>

Verwijderd

Topicstarter
eindelijk gelukt!
ik heb op jguru.com (net gevonden site) wat gevonden.
toen de servlet specification v/d sun site gedownload

daaruit het volgende gehaald en toegepast:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">

<web-app>
    <display-name>Hello World Servlet</display-name>
        <servlet>
            <servlet-name>hello</servlet-name>
            <servlet-class>hello</servlet-class>
        </servlet> 
        <servlet-mapping>
            <servlet-name>hello</servlet-name>
            <url-pattern>/hello/*</url-pattern>
        </servlet-mapping>
</web-app>

je moet dus die <servlet> EN die servlet mapping!.. :)

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Op vrijdag 16 november 2001 15:40 schreef Snow-in-a-can het volgende:
Ik werk al een tijdje met tomcat3.2, nu wilde ik ff snel tomcat4.01 installeren op een andere computer, werkende krijgen was geen probleem, maar servlets compileerde niet, waarom heeft tomcat4 geen servlet.jar meer ? (of waar staat die? :))
Op vrijdag 16 november 2001 16:42 schreef Onno het volgende:

[..]

In $CATALINA_HOME/common/lib/servlet.jar?
Check ook, mits je de docs nog op je tomcat install hebt staan: [url="http://localhost:8080/tomcat-docs/class-loader-howto.html"]http://localhost:8080/tomcat-docs/class-loader-howto.html[/url]

Anders: Even op de Jakarte Tomcat site kijken onder de docs voor de administrator, daar staat iets als classloader howto. Weet je gelijk waar je bijvoorbeeld je eventuele voor elke pagina bescgikbare zooi netjes neer kan zetten. :) (Classen en Jars)
Pagina: 1