Login e senha com erro [RESOLVIDO]

7 respostas
wdwebsite

Olá pessoal boa noite;

Estou seguindo algumas instruções para montar um sistema de login e senha e aparentemente saiu tudo ok mas esta dando erro ao enviar as consultas, o erro e o seguinte:

[TopLink Info]: 2013.05.21 09:17:17.636--ServerSession(8167849)--TopLink, version: Oracle TopLink Essentials - 2.1 (Build 60f (01/07/2009))
[TopLink Info]: 2013.05.21 09:17:18.529--ServerSession(8167849)--file:/D:/java/programas/SiscomWD/netbeans/siscomwd/build/classes/-siscomwdPU login successful
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: You have attempted to set a parameter value using a name of Usuarios.findByUsuLogin that does not exist in the query string SELECT u FROM Usuarios u WHERE u.usuLogin = :usuLogin and u.usuSenha = :usuSenha.
	at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.setParameterInternal(EJBQueryImpl.java:660)
	at oracle.toplink.essentials.internal.ejb.cmp3.EJBQueryImpl.setParameter(EJBQueryImpl.java:202)
	at principal.login.jButton2ActionPerformed(login.java:131)
	at principal.login.access$000(login.java:17)
	at principal.login$1.actionPerformed(login.java:73)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
	at java.awt.EventQueue.access$200(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:688)
	at java.awt.EventQueue$3.run(EventQueue.java:686)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:702)
	at java.awt.EventQueue$4.run(EventQueue.java:700)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
CONSTRUÍDO COM SUCESSO (tempo total: 25 segundos)

Parece que o erro esta nesta instrução aqui:

@NamedQuery(name = "Usuarios.verificaLogin", query = "SELECT u FROM Usuarios u WHERE u.usuLogin = :usuLogin and u.usuSenha = :usuSenha")})

Mas eu não consegui encontrar nada que pudesse ter erro nesta expressão.

Eu estou usando um sistema de persistência para gerar o login
Meu netbeans e o 7.3

Fico no aguardo para alguma ajuda.

7 Respostas

EduFrazao

Como você informou os parâmetros desta query? Pela mensagem, você informou um nome de parâmetro que não existe.

wdwebsite

Realmente estava faltando os parâmetros da query, eu ja tinha passado esses parametros.

Agora o problema e outro, abre a tela de login e senha, eu digito o login e senha e quando clico para registrar e aparece este erro:

[TopLink Info]: 2013.05.23 05:31:11.080--ServerSession(22566565)--TopLink, version: Oracle TopLink Essentials - 2.1 (Build 60f (01/07/2009))
[TopLink Info]: 2013.05.23 05:31:11.833--ServerSession(22566565)--file:/D:/java/programas/SiscomWD/netbeans/siscomwd/build/classes/-siscomwdPU login successful
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: You have attempted to set a parameter value using a name of Usuarios.findByUsuLogin that does not exist in the query string SELECT u FROM Usuarios u WHERE u.usuLogin = :usuLogin and u.usuSenha = :usuSenha.
	at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.setParameterInternal(EJBQueryImpl.java:660)
	at oracle.toplink.essentials.internal.ejb.cmp3.EJBQueryImpl.setParameter(EJBQueryImpl.java:202)
	at principal.login.jButton2ActionPerformed(login.java:133)
	at principal.login.access$000(login.java:17)
	at principal.login$1.actionPerformed(login.java:75)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.Component.processMouseEvent(Component.java:6297)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
	at java.awt.Component.processEvent(Component.java:6062)
	at java.awt.Container.processEvent(Container.java:2039)
	at java.awt.Component.dispatchEventImpl(Component.java:4660)
	at java.awt.Container.dispatchEventImpl(Container.java:2097)
	at java.awt.Component.dispatchEvent(Component.java:4488)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
	at java.awt.Container.dispatchEventImpl(Container.java:2083)
	at java.awt.Window.dispatchEventImpl(Window.java:2489)
	at java.awt.Component.dispatchEvent(Component.java:4488)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:674)
	at java.awt.EventQueue.access$400(EventQueue.java:81)
	at java.awt.EventQueue$2.run(EventQueue.java:633)
	at java.awt.EventQueue$2.run(EventQueue.java:631)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
	at java.awt.EventQueue$3.run(EventQueue.java:647)
	at java.awt.EventQueue$3.run(EventQueue.java:645)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:644)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Não entendi onde pode estar o problema.

EduFrazao

É o mesmo erro de antes amigo

o nome do parâmetro

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: You have attempted to set a parameter value using a name of Usuarios.findByUsuLogin that does not exist in the query string SELECT u FROM Usuarios u WHERE u.usuLogin = :usuLogin and u.usuSenha = :usuSenha.

Este foi o nome de parâmetro q vc usou: Usuarios.findByUsuLogin

ele nao existe. Apenas existem usuLogin e usuSenha

wdwebsite

Sim existe sim, tenho uma classe separada que se chama Usuarios.java que tem os parametros como mostrados a baixo:

@NamedQuery(name = "Usuarios.findByUsuLogin", query = "SELECT u FROM Usuarios u WHERE u.usuLogin = :usuLogin"),
    @NamedQuery(name = "Usuarios.findByUsuSenha", query = "SELECT u FROM Usuarios u WHERE u.usuSenha = :usuSenha"),


@NamedQuery(name = "Usuarios.verificaLogin", query = "SELECT u FROM Usuarios u WHERE u.usuLogin = :usuLogin and u.usuSenha = :usuSenha")})

Ou talvez pode ser algum erro no botão do evento talvez configurei alguma coisa errado:

query = entityManager.createNamedQuery("Usuarios.verificaLogin");
        query.setParameter("Usuarios.findByUsuLogin", Textfield_usuario.getText());
        query.setParameter("Usuarios.findByUsuSenha", EncriptaSenha.encripta(Textfield_senha.getText()));
        List<Usuarios> data = query.getResultList();
        
        if (data.size() > 0) {
            String args[] = new String[1];
            args[0] = data.get(0).getUsuId().toString();
            menu.main(args);
            dispose();
        } else {
            JOptionPane.showMessageDialog(null, "Usuário/Senha incorretos");
            dispose();
        }
EduFrazao

troque isto:

query.setParameter("Usuarios.findByUsuLogin", Textfield_usuario.getText()); query.setParameter("Usuarios.findByUsuSenha", EncriptaSenha.encripta(Textfield_senha.getText()));

por isto:

query.setParameter("usuLogin", Textfield_usuario.getText()); query.setParameter("usuSenha", EncriptaSenha.encripta(Textfield_senha.getText()));

wdwebsite

CARA!!! Realmente era isso funcionou, nem sei como agradecer!!! mas valeu…

Quando precisar de alguma coisa que eu puder ajudar, conte comigo valeu.

EduFrazao

Beleza brother! Fico feliz em ajudar!! Nao esqueça de alterar o título de sua primeira postagem com “[RESOLVIDO]”

Abraço.

Criado 21 de maio de 2013
Ultima resposta 23 de mai. de 2013
Respostas 7
Participantes 2