Container não monta a URL e nem starta a aplicação
Esse post: O JSF e a construção de formulários já está muito grande. Vou encerrá-lo e voltar a discutir nesse post, ok?
Esse é meu web.xml e meu faces-config.xml
Esse é o erro que está dando(não acha um recurso)
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: Wrapper cannot find servlet class javax.faces.webapp.FacesServlet or a class it depends on org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861) org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584) java.lang.Thread.run(Unknown Source) root cause java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861) org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584) java.lang.Thread.run(Unknown Source) note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.
Alguém tem alguma idéia de como contornar isso?
Esse é meu web.xml e meu faces-config.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name>Programinhas_Web</display-name> <context-param> <param-name>javax.faces.CONFIG_FILES</param-name> <param-value>/WEB-INF/faces-config.xml</param-value> </context-param> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>index.jsf</welcome-file> </welcome-file-list> <servlet> <servlet-name>Faces Config</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Faces Config</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app> e <?xml version="1.0" encoding="UTF-8"?> <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> <managed-bean> <managed-bean-name>CalculaPrimo</managed-bean-name> <managed-bean-class>com.classes.PrimoRange</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> <navigation-rule> <display-name>Pages/index.xhtml</display-name> <from-view-id>/Pages/index.xhtml</from-view-id> <navigation-case> <from-outcome>success</from-outcome> <to-view-id>/CalculaPrimo.jsp</to-view-id> </navigation-case> </navigation-rule> </faces-config>
Esse é o erro que está dando(não acha um recurso)
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: Wrapper cannot find servlet class javax.faces.webapp.FacesServlet or a class it depends on org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861) org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584) java.lang.Thread.run(Unknown Source) root cause java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861) org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584) java.lang.Thread.run(Unknown Source) note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.
Alguém tem alguma idéia de como contornar isso?
Pjava
Curtidas 0
Respostas
Davi Costa
26/01/2011
Paulo é o seguinte,
começo a identificar o que está acontecendo.
Se esse for seu web.xml completo, e vc estiver usando jsf, está faltando algumas configurações e jars tb, pelo que parece.
att Davi
começo a identificar o que está acontecendo.
Se esse for seu web.xml completo, e vc estiver usando jsf, está faltando algumas configurações e jars tb, pelo que parece.
att Davi
GOSTEI 0
Davi Costa
26/01/2011
Só complementando,
se for usar JSF não é a melhor estratégia para seu caso usar servlet.
Agora se sua aplicaçãofor didática para aprender servlet, tire o JSF do seu projeto.
E para finalizar o faces-config é do jsf exclusivamente.
att Davi
se for usar JSF não é a melhor estratégia para seu caso usar servlet.
Agora se sua aplicaçãofor didática para aprender servlet, tire o JSF do seu projeto.
E para finalizar o faces-config é do jsf exclusivamente.
att Davi
GOSTEI 0
Pjava
26/01/2011
Devo instalar os .jars em meu projeto, é isso? Quai são então? Como eu posso identificar os jars que faltam? Em que pasta eles devem estar instalados?
GOSTEI 0
Pjava
26/01/2011
Só mais uma. Eu copiei a pasta lib do outro projeto(com vários .jars) e colei em minha pasta WEB-INF, sobreescrevendo a que estava lá. Isso não acho ser errado, ou é?
GOSTEI 0
Davi Costa
26/01/2011
Acho q qdo vc postou n tinha levado em consideração o meu último post.
A configuração do jsf não é simples, vc vai ter q pesquisar bastante.
Mas mesmo assim caso vc keira usar, use meu projeto como modelo
não é só os jars não.
Vc precisa configurar certinho web.xml e faces-config.xml.
att Davi
A configuração do jsf não é simples, vc vai ter q pesquisar bastante.
Mas mesmo assim caso vc keira usar, use meu projeto como modelo
não é só os jars não.
Vc precisa configurar certinho web.xml e faces-config.xml.
att Davi
GOSTEI 0
Pedro Andrade
26/01/2011
Oi Paulo, tudo bem ? vamos antes de tentar te ajudar estabelecer algumas coisas para a compreenção do seu problema, o Java através de um consórcio de empresas como IBM, Nokia, Apache(acho que saíu) que é chamado de JCP estabelece alguns padrões de especificação(como uma interface) porém a implementação pode ser feita por qualquer empresa e por regra são compatíveis pois atendem a mesma especificação, apenas algumas fazem com um tcham ou outro a mais entendeu ?
Exemplo existe a especificação para o JSF e que é implementada pelo Mojarra(mais utilizado e desenvolvido pelo pessoal da Oracle se não me engano), MyFaces, etc. especificação do JPA, mas tem como implementação/provider EclipseLink, Hibernate, etc.
Então eu gostaria de saber que implementação do JSF você está usando ? você adicionou os jars da sua implementação ? qual a IDE está usando ?
Partindo daí vamos tentar descascar esse abacaxi ;-) Blza
Abraço e aguardo sua resposta.
Exemplo existe a especificação para o JSF e que é implementada pelo Mojarra(mais utilizado e desenvolvido pelo pessoal da Oracle se não me engano), MyFaces, etc. especificação do JPA, mas tem como implementação/provider EclipseLink, Hibernate, etc.
Então eu gostaria de saber que implementação do JSF você está usando ? você adicionou os jars da sua implementação ? qual a IDE está usando ?
Partindo daí vamos tentar descascar esse abacaxi ;-) Blza
Abraço e aguardo sua resposta.
GOSTEI 0
Pjava
26/01/2011
Ok, vamos por partes então Respondendo ao davi e ao pedro. Vou retirar o jsf, por enquanto de meu projeto sim. Vou escrever os HTML puros(sem faces) e meus JSP e Servlets. Acho que é isso. Vou criar um novo Web Dynamic Project e refazer. Eu quero ver funcionar e depois eu parto para o JSF, pois necessito aprender esse cara, mas fica pra depois. Quanto a pergunta do Pedro, eu uso:
Helios, Tomcat 6.0.9. Quanto ao JSF é o 1.2, mas já tenho o 2.0, mas sem uso, por enquanto. Ah! Instalei também o JBoss, para testar outro servidor. Isso tudo é aprendizado pra mim. Vamos ver como se sai. Mas, quero voltar ao JSF. Depois de eu ver funcionar, quero fazer com Hibernate e JPA, gravar num banco(Oracle ou MySql) o resultado, mas isso é logo após eu fazer funcionar tudo isso.
Helios, Tomcat 6.0.9. Quanto ao JSF é o 1.2, mas já tenho o 2.0, mas sem uso, por enquanto. Ah! Instalei também o JBoss, para testar outro servidor. Isso tudo é aprendizado pra mim. Vamos ver como se sai. Mas, quero voltar ao JSF. Depois de eu ver funcionar, quero fazer com Hibernate e JPA, gravar num banco(Oracle ou MySql) o resultado, mas isso é logo após eu fazer funcionar tudo isso.
GOSTEI 0
Pjava
26/01/2011
Sem o JSF, estou conseguindo rodar pelo menos meu HTML, até porque ainda não terminei de escrevar os JSP e Servlets.
GOSTEI 0
Davi Costa
26/01/2011
Show de bola cara.
Vc está no caminho certo, muitos desenvolvedores querem logo aprender framewrk pq é o q mais se tem usado e não tem uma base forte de java para web.
Vc tomou uma ótima decisão, não pulando as etapas.
Att Davi
Vc está no caminho certo, muitos desenvolvedores querem logo aprender framewrk pq é o q mais se tem usado e não tem uma base forte de java para web.
Vc tomou uma ótima decisão, não pulando as etapas.
Att Davi
GOSTEI 0
Pjava
26/01/2011
to com uma dúvida cruel. Tenho uma classe chamada Primo e um método chamado CalcPrimo. Preciso executar esse método em um servlet e depois retornar para o cliente em um html. Tenho dúvidas de como fazer. Instanciar a clase dentro do Servlate, ok, mas depois com minha instância eu não consigo pegar o método. Oujtra coisa, me disseram em outro forum que eu não preciso usar Servlet, basta usar somente JSP, pois JSP nada mais é que Servlet. E aí, q ces acham? Esse é o caminho?
GOSTEI 0
Dyego Carmo
26/01/2011
Caso esteja com alguma duvida , em meu devspace tem varias video aulas sobre Java Server Faces, tanto 1.x quanto 2.0
Valeu !
Valeu !
GOSTEI 0
Pjava
26/01/2011
Ok, Dyego, valeu. Vou dar uma olhada e uma estudada.
GOSTEI 0
Pedro Andrade
26/01/2011
É normal como qualquer outra classe, dentro do Servlet digite
import pacote.primos;
public class CalculaPrimoServlet extends HttpServlet {
protected void service (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); Primo p = new Primo();
// escreve o texto out.println("<html>"); out.println("<body>"); out.println("Calculo de nº primo : "+p.calcPrimos(1,10)); // Retorna String com nº primos de 1 a 10 out.println("</body>"); out.println("</html>"); }}
import pacote.primos;
public class CalculaPrimoServlet extends HttpServlet {
protected void service (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); Primo p = new Primo();
// escreve o texto out.println("<html>"); out.println("<body>"); out.println("Calculo de nº primo : "+p.calcPrimos(1,10)); // Retorna String com nº primos de 1 a 10 out.println("</body>"); out.println("</html>"); }}
GOSTEI 0
Pjava
26/01/2011
Resolvi assim:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Primo_Faixa cp = new Primo_Faixa();
try{
int inicio = Integer.parseInt(request.getParameter("edtIncial"));
int fim = Integer.parseInt(request.getParameter("edtFinal"));
out.println("Os números primos de " + inicio + " a " + fim + " são:<br><br>");
out.println(cp.CalcFaixaPrimo(inicio, fim));
}catch(NumberFormatException nfex) {
out.println("Falha ao obter faixas de valores: <br>"+nfex.getMessage());
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Primo_Faixa cp = new Primo_Faixa();
try{
int inicio = Integer.parseInt(request.getParameter("edtIncial"));
int fim = Integer.parseInt(request.getParameter("edtFinal"));
out.println("Os números primos de " + inicio + " a " + fim + " são:<br><br>");
out.println(cp.CalcFaixaPrimo(inicio, fim));
}catch(NumberFormatException nfex) {
out.println("Falha ao obter faixas de valores: <br>"+nfex.getMessage());
}
}
GOSTEI 0
Dyego Carmo
26/01/2011
Resolvido ? Feche a pendencia :)
GOSTEI 0