[color=darkblue][b]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[/b][/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:
[code]
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 “”;
}
}
}[/code]
-
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:
[code]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();
}
}
}[/code]