[RESOLVIDO]Iniciando com JSP/Servlets

Ola pessoal tudo bem? Hoje decidi começar a estudar java para web. Sempre estudei apenas java desktop, e hoje comecei a estudar JSP/Servlets. Estou a apostila da Caelum para aprender os conceitos básicos, e me deparei com o seguinte problema:

Instalei o Tomcat seguindo as instruções da apostila, fiz a integração com o eclipse e o servidor esta funcionando direitinho.

Crei uma primeira servlet num pacote chamado: br.com.teste.servlets.OiMundo

abri o arquivo web.xml gerado pelo eclipse para fazer o mapeamento da servlet.

escrevi no web.xml exatamente isso:

<servlet>
<servlet-name>primeiraServlet</servlet-name>
<servlet-class>br.com.teste.servlets.OiMundo</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>primeiraServlet</servlet-name>
<url-pattern>/oi</url-pattern>
</servlet-mapping>

o Eclipse acusa o seguinte problema na tag servlet :
“the markup in the document following the root element must be well-formed”

pq isso acontece. no console aparece as seguintes mensagens:

05/07/2012 17:53:50 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre6\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre6/bin/client;C:/Program Files/Java/jre6/bin;C:/Program Files/Java/jre6/lib/i386;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Common Files\Roxio Shared\DLLShared\;C:\Program Files\Common Files\Roxio Shared\9.0\DLLShared\;C:\Program Files\QuickTime Alternative\QTSystem;C:\Program Files\Windows Live\Shared;C:\Users\Anderson\Desktop\VIDA  ARTIFICIAL\Swarm-2.2-java\bin;C:\Users\Anderson\Desktop\eclipse;;.
05/07/2012 17:53:51 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
05/07/2012 17:53:51 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
05/07/2012 17:53:51 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 975 ms
05/07/2012 17:53:51 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
05/07/2012 17:53:51 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.28
05/07/2012 17:53:51 org.apache.catalina.valves.AccessLogValve open
GRAVE: Failed to open access log file [C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2012-07-05.txt]
java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2012-07-05.txt (Acesso negado)
	at java.io.FileOutputStream.openAppend(Native Method)
	at java.io.FileOutputStream.<init>(Unknown Source)
	at org.apache.catalina.valves.AccessLogValve.open(AccessLogValve.java:1115)
	at org.apache.catalina.valves.AccessLogValve.startInternal(AccessLogValve.java:1222)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.StandardPipeline.startInternal(StandardPipeline.java:185)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1156)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:785)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1595)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1585)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
05/07/2012 17:53:51 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\docs
05/07/2012 17:53:51 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\manager
05/07/2012 17:53:51 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ROOT
05/07/2012 17:53:51 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
05/07/2012 17:53:51 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
05/07/2012 17:53:51 org.apache.catalina.startup.Catalina start
INFO: Server startup in 688 ms

notei que ocorreram algumas exceçoes como FileNotFoundException porem não faço a menor ideia do motivo visto que praticamente dei um crtl c / ctrl v na apostila.

Alguem sabe como resolver esses problemas? To completamente perdido ainda nesse mundo java Web haha

Obrigado!

Olá And_guimaraes, este arquivo é apenas um log ou seja mostra o que está acontecendo no TomCat, como você inseriu o TomCat no projeto?

Ola :slight_smile:
entao , eu baixe o arquivo .exe no site tomcat.apache.org
instalei o tomcat.

-no eclipse entrei na View de servers e cliquei em adicionar novo servidor
-Selecionei o tomcat 7.0
-cliquei duas vezes no servidor que foi adicionado e marquei a opção “use tomcat installation”
-botão direito no server > add and remove > selecionei o meu projeto.

enfim , segui os passos da apostila da caelum

Como assim vc instalou o TomCat??? Você baixo o TomCat desse site: http://tomcat.apache.org/download-70.cgi

sim , eu entrei nesse site e baixe o seguinte arquivo .exe :

32-bit/64-bit Windows Service Installer

pelo menos era isso que tava na apostila hahaha. ta errado?

Então normalmente baixa apenas o zip, extrai e alguma pasta. No eclipse :
Window >> Preferences >> na busca digite Server>> RunTime Environments >> Add>> seleciona o Servidor de aplição >> Em TomCat installation directory coloque o caminho onde você extraiu o tomcat.

Depois isso na aba server: New Server >> selecionar o servidor de aplicação e colocar o ip ou deixar localHost>> adiciona o projeto e finish.

Normalmente é assim que eu faço.

entao , mas tipo , quando eu digito no browser:

http://localhost:8080

abre a pagina do tomcat normalmente. Isso significa que o servidor esta funcionando corretamente nao é??

eu acho que devo estar fazendo alguma cagada na hora de fazer o mapeamento das servlets no xml.

vou colocar aqui o xml , vc pode ver se tem algo errado por favor?

xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>teste</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
</web-app>

<servlet>
<servlet-name>primeiraServlet</servlet-name>
<servlet-class>br.com.teste.servlets.OiMundo</servlet-class>
</servlet>
  
<servlet-mapping>
<servlet-name>primeraServlet</servlet-name>
<url-pattern>/oi</url-pattern>
</servlet-mapping>

Se eu simplesmente nao faço o mapeamento da servlet o minha aplicaçao executa normalmente
se eu faço :
http://localhost:8080/teste/OiMundo , funciona

mas quando eu faço o mapeamento do modo que esta indicado na apostila o xml fica com erro . Deve ser alguma coisa mto idiota que estou fazendo por ter começado a estudar isso hj

Achei o erro… mal não ter visto antes, o problema é que as tags do a servlet deve ser inseridas entre o e o

ah ta me tirando que era isso? hahahahaha
nossa me senti um lixo agora

muito obrigado , agora funcionou direitinho ¬¬¬

Relaxa cara fiz a mesma coisa quando comecei a programar para web.Caso não tenha mais nenhuma dúvida, não esqueça de colocar o tópico como resolvido e se precisa estamos ai. :smiley: :smiley:

Obrigado , me ajudou muito! =)