Exercicio da apostila fj-21 da caelum a respeito de ActionForm está bugado. [RESOLVIDO]

10 respostas
P

Olá pessoal,
Segui todos os passos certinho do exercicio da pagina 234 da apostila fj-21 e estou tendo o erro:

org.apache.jasper.JasperException: An exception occurred processing JSP page /novo.jsp at line 7

4: <title>Sistema de Teste do Struts</title>
5: </head>
6: <html:errors />
7: <html:form action="/novoContato" focus="contato.nome">
8: Nome:
9: <html:text property="contato.nome" />
10: 	<br />


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


root cause 

java.lang.NullPointerException: Module 'null' not found.
	org.apache.struts.taglib.TagUtils.getModuleConfig(TagUtils.java:755)
	org.apache.struts.taglib.TagUtils.getModuleConfig(TagUtils.java:735)
	org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:818)
	org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:488)
	org.apache.jsp.novo_jsp._jspx_meth_html_005fform_005f0(novo_jsp.java:150)
	org.apache.jsp.novo_jsp._jspx_meth_html_005fhtml_005f0(novo_jsp.java:104)
	org.apache.jsp.novo_jsp._jspService(novo_jsp.java:71)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Já nao sei mais o que fazer,
Segue os codigos:

struts-config.xml
<struts-config>
	<form-beans>
		<form-bean name="ContatoForm" type="br.com.caelum.struts.form.ContatoForm" />
	</form-beans>
	<action-mappings>
		<action path="/pauno" type="br.com.caelum.struts.action.TesteSimplesAction">
			<forward name="ok" path="/exemplo.jsp" />
		</action>

		<action path="/teste" type="br.com.caelum.struts.action.ListaContatosAction">
			<forward name="listaFeliz" path="/listaContatoFeliz.jsp" />
			<forward name="listaVazia" path="/lista-vazia.jsp" />
		</action>

		<action path="/novoContato" name="ContatoForm" 
				type="br.com.caelum.struts.action.AdicionaContatoAction">
				<forward name="ok" path="/teste.cu"/>
		</action>
	</action-mappings>
</struts-config>
novo.jsp
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html:html>
<head>
<title>Sistema de Teste do Struts</title>
</head>
<html:errors />
<html:form action="/novoContato" focus="contato.nome">
Nome:
<html:text property="contato.nome" />
	<br />
Email:
<html:text property="contato.email" />
	<br />
Endereço:
<html:text property="contato.endereco" />
	<br />
<html:text property="contato.dataNascimento" />
	<html:submit>Enviar dados</html:submit>
	<br />
</html:form>
</html:html>

Porfavor galera.
Desde já agradeço

10 Respostas

perdeu

Estou tendo mesmo problema.

dcorteztec

Cade a Action? posta ela ai
Realmente essa é a página que vc esta redirecionando <forward name="ok" path="/teste.cu"/>

P
package br.com.caelum.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.text.html.HTMLDocument.HTMLReader.FormAction;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import br.com.caelum.jdbc.modelo.Contato;
import br.com.caelum.jdbc.modelo.ContatoDAO;
import br.com.caelum.struts.form.ContatoForm;

public class AdicionaContatoAction extends Action {
	
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {		
				
		ContatoForm formulario = (ContatoForm) form;
		
		Contato contato = formulario.getContato();
		
		ContatoDAO dao = new ContatoDAO();
		dao.adiciona(contato);
		
		return mapping.findForward("ok");		
	}

}
Adriano_Almeida

Oi Pedro, blz?

O problema não parece ter relacao com sua Action, e sim com a Taglib do struts.

Qual a release do struts1 você está usando?

[]'s

P

Opa Adriano, estou usando essa:
struts-1.3.10
Baixei a completa.
Agora tentei baixar so as libs e mesmo assim nao funcionou.
Mto estranho, pois os meus colegas aqui fizeram esse mesmo exercicio e funciono.
[]`s

Adriano_Almeida

Pedro, acho que matei a charada…

Veja se o seu web.xml, na declaracao da servlet do struts está com o load-on-startup definido.

Deveria ficar assim o seu web.xml:

&lt;servlet&gt;
		&lt;servlet-name&gt;testeDeStruts&lt;/servlet-name&gt;
		&lt;servlet-class&gt;org.apache.struts.action.ActionServlet&lt;/servlet-class&gt;
		&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
	&lt;/servlet&gt;
	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;testeDeStruts&lt;/servlet-name&gt;
		&lt;url-pattern&gt;*.do&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;

Eu refiz todo o exercício aqui e funcionou normalmente. O único caso em que consegui reproduzir o seu erro, foi quando removi o <load-on-startup>.

Faça o teste ae e poste se deu certo ou não.

[]'s

dcorteztec

Sua Action esta correta em ralação do <load-on-startup>1</load-on-startup>
Em sempre eu usei nunca deu problema é só serve para iniciar o servlet no startup do container (no seu caso o tomcat)

E o 1 é a ordem em que seu servlet será iniciado.
Se você possuir dois ou mais servlets pode definir qual inicia primeiro

Em relação struts-config.xml
Realmente essa é a página que vc esta redirecionando

<forward name="ok" path="/teste.cu"/>
P

Pow Adriano,
Era isso mesmo, muito mais muito obrigado mesmo.
Graças a pessoas como vc que disbonibiliza seu tempo para tentar resolver o problema dos outros que nossa comunidade vai para frente.
Parabens, continue assim.
Estou muito agradecido.

Adriano_Almeida

Valeu,

continue estudando, e qlqr problema posta ae.

[]'s

perdeu

Fique me batendo muito com esse erro. Valeu a ajuda ai =D

Criado 4 de março de 2010
Ultima resposta 8 de mar. de 2010
Respostas 10
Participantes 4