Caros,
Estou com um pequeno problema em uma tela de Login, estou passando o login e senha no formulário, mas me parece que quando a DAO vai fazer a pesquisa no banco, os valores das variáveis estão nulas (acredito que seja isso). Segue abaixo o código fonte das classes + o erro do console.
TELA DE LOGIN:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Tela de Login</title>
</head>
<body>
<h2>TELA DE LOGIN</h2>
<s:form action="login!checaLogin">
<s:textfield name="usuario" label="Usuario" />
<s:password name="senha" label="Senha" />
<s:submit value="Logar" />
</s:form>
</body>
</html>
ACTION:
package app.action;
import app.dao.LoginDAO;
public class LoginAction {
private String _login;
private String _senha;
private Boolean _retorno;
private Boolean _valor;
LoginDAO loga = new LoginDAO();
public String checaLogin(){
if ((isInvalido() == false) || (isInvalido() == false)){
return "erro";
}else{
return "sucesso";
}
}
public Boolean get_valor() {
return _valor;
}
public void set_valor(Boolean valor) {
_valor = valor;
}
private boolean isInvalido(){
// if ((_login == null || _senha == null) || (_login.length() == 0) || _senha.length() == 0){
// _valor = false;
// }else{
_valor = loga.buscaUsuario();
_valor = _retorno;
// }
return _valor;
}
public String get_login() {
return _login;
}
public void set_login(String login) {
_login = login;
}
public String get_senha() {
return _senha;
}
public void set_senha(String senha) {
_senha = senha;
}
public Boolean get_retorno() {
return _retorno;
}
public void set_retorno(Boolean retorno) {
_retorno = retorno;
}
}
BEAN:
package app.bean;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import oracle.sql.DATE;
@Entity
@Table(name="funcionario")
public class Funcionario {
@Id
@GeneratedValue
@Column(name="id_funcionario")
private int _id_funcionario;
@Column(name="de_nome")
private String _de_nome;
@Column(name="de_sexo")
private String _de_sexo;
@Column(name="dt_nasc")
private DATE _dt_nasc;
@Column(name="de_cpf")
private String _de_cpf;
@Column(name="de_rg")
private String _de_rg;
@Column(name="de_fone_celular")
private String _de_fone_celular;
@Column(name="de_fone_residencial")
private String _de_fone_residencial;
@Column(name="de_end")
private String _de_end;
@Column(name="de_cidade")
private String _de_cidade;
@Column(name="ch_uf")
private String _ch_uf;
@Column(name="fl_transporte")
private int _fl_transporte;
@Column(name="de_login")
private String _login;
@Column(name="de_senha")
private String _senha;
@Column(name="txt_obs")
private String _txt_obs;
public String get_de_nome() {
return _de_nome;
}
public void set_de_nome(String deNome) {
_de_nome = deNome;
}
public String get_de_sexo() {
return _de_sexo;
}
public void set_de_sexo(String deSexo) {
_de_sexo = deSexo;
}
public DATE get_dt_nasc() {
return _dt_nasc;
}
public void set_dt_nasc(DATE dtNasc) {
_dt_nasc = dtNasc;
}
public String get_de_cpf() {
return _de_cpf;
}
public void set_de_cpf(String deCpf) {
_de_cpf = deCpf;
}
public String get_de_rg() {
return _de_rg;
}
public void set_de_rg(String deRg) {
_de_rg = deRg;
}
public String get_de_fone_celular() {
return _de_fone_celular;
}
public void set_de_fone_celular(String deFoneCelular) {
_de_fone_celular = deFoneCelular;
}
public String get_de_fone_residencial() {
return _de_fone_residencial;
}
public void set_de_fone_residencial(String deFoneResidencial) {
_de_fone_residencial = deFoneResidencial;
}
public String get_de_end() {
return _de_end;
}
public void set_de_end(String deEnd) {
_de_end = deEnd;
}
public String get_de_cidade() {
return _de_cidade;
}
public void set_de_cidade(String deCidade) {
_de_cidade = deCidade;
}
public String get_ch_uf() {
return _ch_uf;
}
public void set_ch_uf(String chUf) {
_ch_uf = chUf;
}
public int get_fl_transporte() {
return _fl_transporte;
}
public void set_fl_transporte(int flTransporte) {
_fl_transporte = flTransporte;
}
public String get_txt_obs() {
return _txt_obs;
}
public void set_txt_obs(String txtObs) {
_txt_obs = txtObs;
public void set_senha(String _senha) {
this._senha = _senha;
}
public String get_senha() {
return _senha;
}
public void set_id_funcionario(int _id_funcionario) {
this._id_funcionario = _id_funcionario;
}
public int get_id_funcionario() {
return _id_funcionario;
}
public void set_login(String _login) {
this._login = _login;
}
public String get_login() {
return _login;
}
}
DAO:
package app.dao;
import org.hibernate.Query;
import org.hibernate.Session;
import app.bean.Funcionario;
import app.util.HibernateUtil;
public class LoginDAO {
@SuppressWarnings("static-access")
public boolean buscaUsuario(){
HibernateUtil hibernateUtil = new HibernateUtil();
Session sessao = hibernateUtil.getSession();
Funcionario login = new Funcionario();
Query query = sessao.createQuery("from Funcionario where de_login ='"+ login.get_login() + "' and de_senha ='"+ login.get_senha() + "'");
if (query == null){
return false;
}else{
return true;
}
}
}
ERRO:
29/04/2011 14:56:51 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 (x86)\Java\jre6\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files (x86)/Java/jre6/bin/client;C:/Program Files (x86)/Java/jre6/bin;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\OEM\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\OEM\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\OEM\12.0\DLLShared\;C:\Program Files (x86)\Roxio\OEM\AudioCore\;C:\Program Files (x86)\Windows Live\Shared
29/04/2011 14:56:51 org.apache.tomcat.util.digester.SetPropertiesRule begin
AVISO: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:PROJETO_RH' did not find a matching property.
29/04/2011 14:56:51 org.apache.tomcat.util.digester.SetPropertiesRule begin
AVISO: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:aula1_projeto2_exerc' did not find a matching property.
29/04/2011 14:56:51 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8083
29/04/2011 14:56:51 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 327 ms
29/04/2011 14:56:51 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
29/04/2011 14:56:51 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.29
29/04/2011 14:56:52 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
INFO: Parsing configuration file [struts-default.xml]
29/04/2011 14:56:52 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
INFO: Parsing configuration file [struts-plugin.xml]
29/04/2011 14:56:52 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
INFO: Parsing configuration file [struts.xml]
29/04/2011 14:56:52 org.apache.struts2.config.Settings getLocale
AVISO: Settings: Could not parse struts.locale setting, substituting default VM locale
29/04/2011 14:56:52 com.opensymphony.xwork2.util.ObjectTypeDeterminerFactory <clinit>
INFO: Detected GenericsObjectTypeDeterminer, initializing it...
29/04/2011 14:56:52 com.opensymphony.xwork2.util.XWorkConverter getInstance
INFO: Detected AnnotationXWorkConverter, initializing it...
log4j:WARN No appenders could be found for logger (com.opensymphony.xwork2.config.providers.XmlConfigurationProvider).
log4j:WARN Please initialize the log4j system properly.
29/04/2011 14:56:52 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8083
29/04/2011 14:56:52 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
29/04/2011 14:56:52 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/13 config=null
29/04/2011 14:56:52 org.apache.catalina.startup.Catalina start
INFO: Server startup in 993 ms
29/04/2011 14:57:00 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet default threw exception
java.lang.NullPointerException
at app.action.LoginAction.isInvalido(LoginAction.java:38)
at app.action.LoginAction.checaLogin(LoginAction.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:399)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:262)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:213)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.intercept(ParametersInterceptor.java:161)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:207)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:127)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.intercept(PrepareInterceptor.java:115)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:123)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:507)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Grato a quem puder me ajudar a descobrir o que tá dando errado.
Jr. Calabró.