Master.Abs 25 de out. de 2011
Cara veja se te ajuda http://www.vaannila.com/struts/struts-example/struts-hello-world-example-1.html , quando eu estava aprendendo struts eu tirei base desse site.
Flw
JoaoMarques 25 de out. de 2011
Dando uma olhada no link que você me passou pelo o que eu entendi , parece o struts.xml precisa estar dentro do pacote de action . ?
Correto?
JoaoMarques 25 de out. de 2011
Então creio que é isso , pois eu adicionei o struts.xml no projeto e dessa vez pelo menos consegui abrir as outras actions.
Porém a minha qu eu acabei de configurar no struts eu não abro!
Gera o 404 .
Eu tento acessar a action porém não dá certo .
<struts>
<package name= "default" extends= "struts-default" >
<action name= "tarefaForm" >
<result> /WEB-INF/content/formulario-tarefas.jsp</result>
</action>
</package>
< /strut
Esse é o código do struts.xml , ele está na minha pasta de actions .
Eu tento acessar a action tarefaForm porém gera o 404 .
Alguém sabe me explicar o porque ??
Obrigado !
JoaoMarques 25 de out. de 2011
UP UP UP
Por favor gente , preciso de vcs.
JoaoMarques 26 de out. de 2011
fabiofalci 27 de out. de 2011
Acontece alguma exception?
JoaoMarques 27 de out. de 2011
Então consegui resolver o problema parcialmente .
Agora está gerando o erro 500 . uma NullPointerExcpetion …
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java . lang . NullPointerException
br . com . cfr . jdbc . dao . UsuarioDAO . procura ( UsuarioDAO . java : 23 )
br . com . cfr . action . LoginAction . login ( LoginAction . java : 20 )
sun . reflect . NativeMethodAccessorImpl . invoke0 ( Native Method )
sun . reflect . NativeMethodAccessorImpl . invoke ( Unknown Source )
sun . reflect . DelegatingMethodAccessorImpl . invoke ( Unknown Source )
java . lang . reflect . Method . invoke ( Unknown Source )
com . opensymphony . xwork2 . DefaultActionInvocation . invokeAction ( DefaultActionInvocation . java : 452 )
com . opensymphony . xwork2 . DefaultActionInvocation . invokeActionOnly ( DefaultActionInvocation . java : 291 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 254 )
com . opensymphony . xwork2 . interceptor . DefaultWorkflowInterceptor . doIntercept ( DefaultWorkflowInterceptor . java : 176 )
com . opensymphony . xwork2 . interceptor . MethodFilterInterceptor . intercept ( MethodFilterInterceptor . java : 98 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
com . opensymphony . xwork2 . validator . ValidationInterceptor . doIntercept ( ValidationInterceptor . java : 263 )
org . apache . struts2 . interceptor . validation . AnnotationValidationInterceptor . doIntercept ( AnnotationValidationInterceptor . java : 68 )
com . opensymphony . xwork2 . interceptor . MethodFilterInterceptor . intercept ( MethodFilterInterceptor . java : 98 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
com . opensymphony . xwork2 . interceptor . ConversionErrorInterceptor . intercept ( ConversionErrorInterceptor . java : 138 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
com . opensymphony . xwork2 . interceptor . ParametersInterceptor . doIntercept ( ParametersInterceptor . java : 207 )
com . opensymphony . xwork2 . interceptor . MethodFilterInterceptor . intercept ( MethodFilterInterceptor . java : 98 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
com . opensymphony . xwork2 . interceptor . ParametersInterceptor . doIntercept ( ParametersInterceptor . java : 207 )
com . opensymphony . xwork2 . interceptor . MethodFilterInterceptor . intercept ( MethodFilterInterceptor . java : 98 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
com . opensymphony . xwork2 . interceptor . StaticParametersInterceptor . intercept ( StaticParametersInterceptor . java : 190 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
org . apache . struts2 . interceptor . MultiselectInterceptor . intercept ( MultiselectInterceptor . java : 75 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
org . apache . struts2 . interceptor . CheckboxInterceptor . intercept ( CheckboxInterceptor . java : 94 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
org . apache . struts2 . interceptor . FileUploadInterceptor . intercept ( FileUploadInterceptor . java : 243 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
com . opensymphony . xwork2 . interceptor . ModelDrivenInterceptor . intercept ( ModelDrivenInterceptor . java : 100 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
com . opensymphony . xwork2 . interceptor . ScopedModelDrivenInterceptor . intercept ( ScopedModelDrivenInterceptor . java : 141 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
org . apache . struts2 . interceptor . debugging . DebuggingInterceptor . intercept ( DebuggingInterceptor . java : 270 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
com . opensymphony . xwork2 . interceptor . ChainingInterceptor . intercept ( ChainingInterceptor . java : 145 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
com . opensymphony . xwork2 . interceptor . PrepareInterceptor . doIntercept ( PrepareInterceptor . java : 171 )
com . opensymphony . xwork2 . interceptor . MethodFilterInterceptor . intercept ( MethodFilterInterceptor . java : 98 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
com . opensymphony . xwork2 . interceptor . I18nInterceptor . intercept ( I18nInterceptor . java : 176 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
org . apache . struts2 . interceptor . ServletConfigInterceptor . intercept ( ServletConfigInterceptor . java : 164 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
com . opensymphony . xwork2 . interceptor . AliasInterceptor . intercept ( AliasInterceptor . java : 190 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
com . opensymphony . xwork2 . interceptor . ExceptionMappingInterceptor . intercept ( ExceptionMappingInterceptor . java : 187 )
com . opensymphony . xwork2 . DefaultActionInvocation . invoke ( DefaultActionInvocation . java : 248 )
org . apache . struts2 . impl . StrutsActionProxy . execute ( StrutsActionProxy . java : 52 )
org . apache . struts2 . dispatcher . Dispatcher . serviceAction ( Dispatcher . java : 498 )
org . apache . struts2 . dispatcher . ng . ExecuteOperations . executeAction ( ExecuteOperations . java : 77 )
org . apache . struts2 . dispatcher . ng . filter . StrutsPrepareAndExecuteFilter . doFilter ( StrutsPrepareAndExecuteFilter . java : 91 )
note The full stack trace of the root cause is available in the Apache Tomcat / 7.0 . 22 logs .
não sei aonde .
package br.com.cfr.jdbc.dao ;
import java.sql.Connection ;
import java.sql.ResultSet ;
import java.sql.SQLException ;
import java.sql.Statement ;
import br.com.cfr.jdbc.ConnectionFactory ;
import br.com.cfr.jdbc.modelo.Usuario ;
public class UsuarioDAO {
private Connection connection ;
public UsuarioDAO () throws ClassNotFoundException {
this . connection = new ConnectionFactory (). getConnection ();
}
public boolean procura ( Usuario usuario ) {
String name = usuario . getNome ();
String password = usuario . getSenha ();
try {
Statement stmt = connection . createStatement ();
String sql = "select * from tabuser where name=? , password=?" ;
ResultSet rs = stmt . executeQuery ( sql );
if ( rs . next ())
return true ;
} catch ( SQLException e ){
throw new RuntimeException ( e );
}
return false ;
}
}
package br.com.cfr.action ;
import org.apache.struts2.convention.annotation.Action ;
import org.apache.struts2.convention.annotation.Result ;
import br.com.cfr.jdbc.dao.UsuarioDAO ;
import br.com.cfr.jdbc.modelo.Usuario ;
import com.opensymphony.xwork2.ActionContext ;
public class LoginAction {
private Usuario usuario ;
@Action ( value = "login" , results = {
@Result ( name = "ok" , location = "menu.jsp" ),
@Result ( name = "invalido" , location = "formulario-login.jsp" ) })
public String login () throws ClassNotFoundException {
if ( new UsuarioDAO (). procura ( usuario )) {
ActionContext . getContext (). getSession ()
. put ( "usuarioLogado" , usuario );
return "ok" ;
}
return "invalido" ;
}
public Usuario getUsuario () {
return usuario ;
}
public void setUsuario ( Usuario usuario ) {
this . usuario = usuario ;
}
}
e a JSP :
<html>
<body>
<h2> Página de Login das Tarefas</h2>
<form action= "login" method= "post" >
Login: <input type= "text" name= "usuario.login" />
<br />
Senha: <input type= "password" name= "usuario.senha" /> <br /> <input type= "submit"
value= "Entrar nas tarefas" />
</form>
</body>
</html>
Alguém por favor?
Acho que o meu método do dao está errado , porém não consigo arrumar …
ViniGodoy 27 de out. de 2011
POR FAVOR NÃO POSTE TÍTULOS USANDO LETRAS MAIÚSCULAS.
COMO VOCÊ PODE TER SENTIDO NESSE COMENTÁRIO, DÁ A IMPRESSÃO QUE ESTOU GRITANDO COM VOCÊ.
Marcio_Nogueira 28 de out. de 2011
faça o debug de sua aplicação para ver em que ponto está sendo gerado o null pointer.
lukkinhas 28 de out. de 2011
(joaomarques)
Eu debuguei no UsuarioDAO, e deu erro na linha 23: String name = usuario.getNome();
eu dechei como comentario as duas linhas (23 e 24), e então gerou uma runtime exception…
obrigado!