Ja editou chegei atrasado rsrs
VLw a Todos pela Ajuda,
Consegui compilar…
Com certeza voltarei aki com mais problemas xDd~
Agradeço a todos.
Att,
Ricardo Zanca.
HTTP Status 404 - /SelectBeer.do
type Status report
message /SelectBeer.do
description The requested resource (/SelectBeer.do) is not available.
Apache Tomcat/5.5.28
olha o erro q esta dando agora.
Esse erro eh no XML? ou no action do Form?
Mais uma vez erro na hora de copiar o exercicio… da uma olhada na sintaxe do livro e ve se bate com os seus arquivos…
esse erro é de digitação 
faça os exercicios sem pressa, senao alguns erros desses passam desapercebidos…
Mais uma vez erro na hora de copiar o exercicio… da uma olhada na sintaxe do livro e ve se bate com os seus arquivos…
esse erro é de digitação 
faça os exercicios sem pressa, senao alguns erros desses passam desapercebidos…
Não era erro de codigo andre, esqueci de copiar o arquivo .class para o Tomcat.
Vlw Pela ajuda.
Assim que eu travar no livro novamente eu volto… ^^
Bom Dia Galera,
Travei novamente. ¬¬
Tenho que criar uma classe para chamar um modelo chamado BeerExpert.
O codigo do modelo eh esse:
package com.example.model;
import java.util.*;
public class BeerExpert
(
public List getBrands(String color)
{
List brands = new Arraylist();
if (color.equals("amber"))
{
brands.add("Jack Amber");
brands.add("Red Moose");
}
else
{
brands.add("Jail Pale Ale");
brands.add("Gout Stout");
}
returns(brands);
}
}
Eu Devo criar a classe no DD certo? (que no meu caso se chama web.xml)
Eu modifiquei o arquivo e o mesmo ficou assim:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
`<servlet>
`<servlet-name> Ch3 Beer </servlet-name>
`<servlet-class>com.example.web.BeerSelect</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Ch3 Beer</servlet-name>
`<url-pattern>/SelectBeer.do</url-pattern>
</servlet-mapping>
`<servlet>
`<servlet-name> Ch4 Beer </servlet-name>
`<servlet-class>com.example.model.BeerExpert</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Ch4 Beer</servlet-name>
`<url-pattern>/SelectBeer.do</url-pattern>
</servlet-mapping>
</web-app>
O erro que aparece quando mando compilar o arquivo BeerExpert eh o seguinte:
C:\MyProjects\BeerV1>javac -classpath C:\Tomcat\common\lib\servlet-api.jar;class
es;. -d classes src\com\example\model\BeerExpert.java
src\com\example\model\BeerExpert.java:4: ‘{’ expected
public class BeerExpert
^
1 error
O que eu estou fazendo de errado?
Agradeço a ajuda.
Coloque seu código sempre entre as tags “code”. Assim:
seu código aqui
vlw marcos, não sabia que ficava desse jeito!!
Bem melhor de visualizar
Alguem pra ajudar hoje?
Olha, se não me engano é um detalhe ínfimo: você abriu parênteses ao invés de abrir chaves na definição da sua classe. Está assim:
public class BeerExpert [color=red]([/color]
Enquanto deveria ser assim:
public class BeerExpert {
Encontrei o erro do parenteses,
Agora quando eu Compilo aparece o seguinte erro:
C:\MyProjects\BeerV1>javac -classpath c:\tomcat\common\lib\servlet-api.jar;class
es;. -d classes src\com\example\model\beerexpert.java
src\com\example\model\beerexpert.java:9: cannot find symbol
symbol : class Arraylist
location: class com.example.model.BeerExpert
List brands = new Arraylist();
^
src\com\example\model\beerexpert.java:20: cannot find symbol
symbol : method returns(java.util.List)
location: class com.example.model.BeerExpert
returns(brands);
^
Note: src\com\example\model\beerexpert.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 errors
O que estou fazendo de errado?
Atenção pois o Java é case-sensitive: é ArrayList. E quando se retorna algo é return (e não return[color=red]s[/color]).
Além disso, procure respeitar o nome do arquivo e da classe (se a classe chama-se BeerExample, chame o arquivo de BeerExample.java, respeitando capitalização).
E compile com a opção -Xlint.
Só adicionando, o return não precisa ter o retorno entre parênteses (apesar de não ser proibido também). Prefira a versão sem parênteses para evitar que você confunda o return com um método. Por exemplo:
public static int getZero() {
return 0; // sem parênteses
}
Obrigado mesmo pela Atenção Marcos,
Como pode ver, sou novo nessa linguagem…venho do PHP e estou apanhando muito pra aprender isso. Toda hora estou errando bobeiras…mas vou seguindo tentando…graças a ajuda de pesoas como você. Obrigado Mesmo.
Como eu faço para usar o xlint?
Mesmo sem Xlint o arquivo foi compilado.
Mas agora aparece o seguinte erro quando eu rodo a pagina:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Class com.example.model.BeerExpert is not a Servlet
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
java.lang.Thread.run(Unknown Source)
root cause
java.lang.ClassCastException: com.example.model.BeerExpert cannot be cast to javax.servlet.Servlet
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
java.lang.Thread.run(Unknown Source)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.28 logs.
O meu arquivo web.xml é o seguinte:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
`<servlet>
`<servlet-name> Ch3 Beer </servlet-name>
`<servlet-class>com.example.web.BeerSelect</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Ch3 Beer</servlet-name>
`<url-pattern>/SelectBeer.do</url-pattern>
</servlet-mapping>
`<servlet>
`<servlet-name>Ch4 Beer </servlet-name>
`<servlet-class>com.example.model.BeerExpert</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Ch4 Beer</servlet-name>
`<url-pattern>/SelectBeer.do</url-pattern>
</servlet-mapping>
</web-app>
é um erro de classe certo?
Para que sua classe seja um Servlet ela deve extender de HttpServlet, ou implementar de outra forma a interface Servlet (coisa que a classe BeerExpert não faz). Se esse é um exemplo do livro, verifique se não há mais nenhuma classe adicional, ou coisa parecida.
Consegui fazer rodar.
Mas pra falar a verdade eu não sei ao certo pq está rodando…eu retirei o caminho pro servlet do BeerExpert e pronto…rodou.
Segue abaixo as modificações que fiz:
web.xml
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
`<servlet>
`<servlet-name> Ch3 Beer </servlet-name>
`<servlet-class>com.example.web.BeerSelect</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Ch3 Beer</servlet-name>
`<url-pattern>/SelectBeer.do</url-pattern>
</servlet-mapping>
</web-app>
BeerSelect
package com.example.web;
import com.example.model.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class BeerSelect extends HttpServlet
{
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Conselho sobre Escolha de Cerveja<br>");
String c = request.getParameter("color");
BeerExpert be = new BeerExpert();
List result = be.getBrands(c);
Iterator it = result.iterator();
while (it.hasNext())
{
out.print("<br>Tente: " + it.next());
}
}
}
e por ultimo o BeerExpert
package com.example.model;
import java.util.*;
public class BeerExpert
{
public List getBrands(String color)
{
List brands = new ArrayList();
if (color.equals("amber"))
{
brands.add("Jack Amber");
brands.add("Red Moose");
}
else
{
brands.add("Jail Pale Ale");
brands.add("Gout Stout");
}
return(brands);
}
}
Segundo o livro eu deveria ter criado a classe Model do BeerExpert antes de criar o arquivo. (essa classe eles não iriam ensinar a criar)
Mas sem modificar nada e seguindo os proximos passos deu certo. alguem poderia me dizer onde foi que eu criei a classe para eu poder entender o que estou fazendo?
Estou apanhado bastante para conseguir entender esse livro de JSP do Use a Cabeça.
Att,