Long ou long... Pq JME não consegue converter String em Long?

0 respostas
hayase

[color=darkblue]Olá Pessoal. Boa Noite a todos. Estou tendo um problema muito cabuloso.

Eu tenho um serviço em um web service que retorna as tarefas que um determinado usuário deve cumprir e também um outro serviço para o Login
Eu estou usando o projeto emprestado de um amigo, eu apenas quero acessá-lo pelo meu cliente Mobile (JME).
Então, eu tenho as classes de persistência (JPA), o Banco de Dados está no Derby mesmo e o servidor é o Glassfish. Tudo no Netbeans.
No JME eu criei um novo cliente de serviço web (botão direito etc e tal) o que já gera um pacote com os arquivos etc e tal
Questão é que eu tenho esse campo chamado ID que no banco de dados é do tipo BIGINT e na JPA é do tipo LONG
Os métodos do serviço retornam todos eles strings... eu quebro essa string no meu cliente movel e pego a string ID que me interessa
essa ID eu pego na hora q o cliente faz o login e então eu tenho q passar essa string como parametro para o método das tarefas
o problema é q eu tenho q converter uma string em um Long e não estou conseguindo
no mobile estou usando LWUIT
Por favor gente alguém me dê uma luz
ai vão os códigos
obrigada
[/color]

TABELAS SQL
CREATE TABLE Usuario (
	Id BIGINT GENERATED ALWAYS AS IDENTITY NOT NULL,
	Nome VARCHAR ( 255 ) NOT NULL,
	Login VARCHAR ( 55 ) NOT NULL,
	Senha VARCHAR ( 55 ) NOT NULL,
	Cargo BIGINT NOT NULL,
	CONSTRAINT PK_Usuario PRIMARY KEY (Id),
	CONSTRAINT UQ_Login UNIQUE (Login),
	CONSTRAINT FK_Cargo1 FOREIGN KEY (Cargo) REFERENCES Cargo (Id)
	);
CREATE TABLE Tarefa (
	Id BIGINT GENERATED ALWAYS AS IDENTITY NOT NULL,
	Solicitante BIGINT NOT NULL,
	Efetuador BIGINT NOT NULL,
	Procedimento BIGINT NOT NULL,
	CONSTRAINT PK_Tarefa PRIMARY KEY (Id),
	CONSTRAINT FK_Usuario6 FOREIGN KEY (Solicitante) REFERENCES Usuario (Id),
	CONSTRAINT FK_Usuario7 FOREIGN KEY (Efetuador) REFERENCES Usuario (Id),
	CONSTRAINT FK_Procedimento1 FOREIGN KEY (Procedimento) REFERENCES Procedimento (Id)
	);
SERVIDOR:
package br.com.servidor;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

/**
 *
 * @author Administrador
 */
@WebService()
public class Sus_WebService {

    private String loginResult = null;
    private String senhaResult = null;

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "Login")
    public String Login(@WebParam(name = "login") String login, @WebParam(name = "senha") String senha) {

        EntityManagerFactory emf = Persistence.createEntityManagerFactory("Sus_WebService_1PU");
        EntityManager em = emf.createEntityManager();
        StringBuilder sb = new StringBuilder();

        try {
            Usuario usuario = (Usuario) em.createNamedQuery("Usuario.findByLogin").setParameter("login", login).getSingleResult();
            loginResult = usuario.getLogin();
            senhaResult = usuario.getSenha();
            if (usuario != null && (senhaResult.equals(senha)) && (loginResult.equals(login))) {
                sb.append(usuario.getLogin() + "§");
                sb.append(usuario.getSenha() + "§");
                sb.append(usuario.getId());
                System.out.println("sb: " + sb.toString());
            }
        } catch (Exception e) {
            System.out.println(" \n \t Excessao: \t " + e.getMessage());
            System.out.println(" \n \t valor de SB: \t " + sb.toString());
            System.out.println(" \n \t valor de login e senha: \t " + login + "\t" + senha);
            login = "";
            senha = "";
            sb.append(login);
            sb.append(senha);
            System.out.println(" \n \n \t ---> valor de SB após limpar variavel: \t " + sb.toString());
            System.out.println(" \n \n \t ---> valor de login e senha  após limpar variavel: \t " + login + "\t" + senha);
            e.printStackTrace();
        }
        return sb.toString();
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "TarefasTeste")
    public String TarefasTeste(@WebParam(name = "id") Long id) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("Sus_WebService_1PU");
        EntityManager em = emf.createEntityManager();
        StringBuilder sb = new StringBuilder();
        try {

            //Long id = (Long) usuarioId;
            Usuario user = (Usuario) em.createNamedQuery("Usuario.findById").setParameter("id", id).getSingleResult();
            if (user != null) {
                for (Tarefa t : user.getTarefaCollection()) {
                    if (t.getProcedimento().getRealizacao() == null) {
                        sb.append(t.getId() + "§");
                        sb.append(t.getEfetuador() + "§");
                        sb.append(t.getProcedimento() + "§");
                        sb.append(t.getSolicitante() + "§");
                    }
                }
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
            e.printStackTrace();
        }
        System.out.println("tarefas: " + sb.toString());
        if (!sb.toString().isEmpty()) {
            System.out.println(" \n \n \t DENTRO DO IF !SB.TOSTRING().ISEMPTY()");
            return sb.toString().substring(0, sb.toString().length() - 1);
        } else {
            System.out.println(" \n \n \t DENTRO DO ELSE !SB.TOSTRING().ISEMPTY()");
            return "";
        }
    }
}
LOGIN NO MOBILE:
class ConnectionThread extends Thread {

        private String loginResult;
        private String senhaResult;

        public void run() {
            System.out.println("Dento do método Connection Thread \n login: " + login + "\t senha: " + senha);
            Sus_WebServiceService stub = new Sus_WebServiceService_Stub();
            String result = null;
            try {
                stub.Login(login, senha);
                result = stub.Login(login, senha);
                System.out.println("Result: " + result);
                int first = result.toString().indexOf("§");
                if (first > 0) {
                    int second = first + result.toString().substring(first + 1).indexOf("§") + 1;
                    loginResult = (result.toString().substring(0, first));
                    senhaResult = (result.toString().substring(first + 1, second));
                    idResult = (result.toString().substring(second + 1));
                }
                System.out.println(" \n \t LOGIN RESULT: " + loginResult + " \n \t SENHA RESULT: " + senhaResult + " \n \t ID RESULT: " + idResult);

                if ((loginResult == null) && (senhaResult == null)) {
                    System.out.println("dentro do if");
                    ta_dialog.setText("Erro na Autenticação");
                    dialog.setTitle("Atenção:");
                    dialog();
                } else {
                    System.out.println("dentro do else");
                    ta_dialog.setText("Login Efetuado Corretamente");
                    dialog.setTitle("Autenticado:");
                    dialog();
                    fmTarefas.show();
                }
            } catch (RemoteException ex) {
                System.out.println("dentro do exception");
                ex.printStackTrace();
            }
        }
    }
TAREFAS NO MOBILE:
class ConnectionTarefas extends Thread {
        //private Long idr;
        private String idR;
        private String efetuadorResult;
        private String solicitacaoResult;
        private String procedimentoResult;

        public void run() {
            System.out.println("Dento do método Connection Tarefas \n");
            Sus_WebServiceService stub = new Sus_WebServiceService_Stub();
            String result = null;
            try {
                id = new Long(idResult);
                result = stub.TarefasTeste(id);
                System.out.println("Result: " + result);  
                int first = result.toString().indexOf("§");
                if (first > 0) {
                    int second = first + result.toString().substring(first + 1).indexOf("§") + 1;
                    idR = (result.toString().substring(0, first));
                    efetuadorResult = (result.toString().substring(first + 1, second));
                    procedimentoResult = (result.toString().substring(second + 1));
                    solicitacaoResult = (result.toString().substring(second + 1));
                }
                System.out.println("ID R: " + idR + "EFETUADOR RESULT: " + efetuadorResult + "PROCEDIMENTO RESULT: " + procedimentoResult + "SOLICITACAO RESULT" + solicitacaoResult);

                if (idResult == null) {
                    System.out.println("dentro do if");
                    ta_dialog.setText("Nenhuma Tarefa");
                    dialog.setTitle("Atenção:");
                    dialog();
                } else {
                    System.out.println("dentro do else");

                }
            } catch (RemoteException ex) {
                System.out.println("dentro do exception");
                ex.printStackTrace();
            }
        }
    }
Criado 18 de outubro de 2008
Respostas 0
Participantes 1