Web Service Java Local

0 respostas
java
B

Olá!

Tenho duas classes para validação de CPF. Uma classe solicita o número de CPF e a segunda valida.
Preciso fazer com que a validação seja por meio de um retorno do servidor web local.
No caso a classe “ValidaCPF”. Ou seja, preciso desenvolver um servidor "classe ValidaCPF"
e um cliente para consumir “Classe Exemplo”.Tenho o Apache Axis instalado e rodando no
endereço: http://localhost:8080/axis/

Como faço de forma simples essa conexão?

Segue as classes:

Cliente…

//pacote utilizado para o projeto (APS)
package aps_webservice;

<a href="//java.util.Scanner" class="onebox" target="_blank">//java.util.Scanner</a>

//Um scanner de texto simples que pode analisar tipos primitivos e strings usando expressões regulares.

//A Scanner quebra sua entrada em tokens usando um padrão delimitador, que por padrão corresponde a espaços em branco.

//Os sinais resultantes podem então ser convertidos em valores de tipos diferentes, usando os vários métodos seguintes.

import java.util.Scanner;

//classe pública para teste da validação do CPF

public class Exemplo {

//método main (utilizado para inicialização da aplicação)

public static void main(String[] args) {

//instanciando a classe Scanner com o nome "lercpf"

Scanner lercpf = new Scanner(<a href="http://System.in">System.in</a>);

//variável cpf utilizada para armazenar o valor digitado

String cpf;

//tela para solicitação de um número de CPF

System.out.printf("Informe o número do CPF: ");

//após ler o valor digitado, o mesmo será armazenado na variável "cpf"

cpf = lercpf.next();
System.out.printf("\nResultado da validação: ");

//chamada dos métodos calculocpf e imprimecpf da classe validacpf

//se o valor digitado for validado como verdadeiro

//será impresso a mensagem de validação Ok

if (validacpf.calculocpf(cpf) == true)
System.out.printf("%s\n", validacpf.imprimecpf(cpf));
//caso contrário, uma mensagem de erro será impressa

else System.out.printf(CPF inválido!\n);

}

}

Servidor:

//pacote utilizado para o projeto (APS)

package aps_webservice;

//InputMismatchException: indica  se o token recuperado corresponde ao padrão

//para o tipo esperado, ou se o sinal está fora do intervalo para o tipo esperado.

import java.util.InputMismatchException;

//classe pública “validacpf” utilizada para o cáculo de validação do CPF

public class validacpf {

//método booliano utilizado para verificar se os valores digitados estão nos padrões esperado

//será verificado a String digitada

//o método conterá todo o cálculo do CPF
public static boolean calculocpf(String CPF) {

// considera-se erro CPF’s formados por uma sequência de numeros iguais

//método equals será utilizado para comparação

if (CPF.equals([telefone removido]) || CPF.equals([telefone removido]) || CPF.equals([telefone removido]) ||

CPF.equals([telefone removido]) || CPF.equals([telefone removido]) || CPF.equals([telefone removido]) || CPF.equals([telefone removido]) ||

CPF.equals([telefone removido]) || CPF.equals([telefone removido]) || CPF.equals([telefone removido]) ||

//ou uma sequência menor que onze

(CPF.length() != 11))

//caso o valor digitado seja uma sequência de números iguais ou menor que 11 dígitos,

//será retornado uma mensagem com alerta informado que o valor

//digitado não está correto e/ou esperado

return(false);

//O algoritmo de validação do CPF calcula o primeiro dígito verificador a partir dos 9 primeiros dígitos do CPF,

//e em seguida, calcula o segundo dígito verificador a partir dos 9 (nove) primeiros dígitos do CPF, mais o primeiro

//dígito, obtido na primeira parte.

//variáveis para armazenar os dois últimos dígitos do CPF
char d10, d11;

int soma, i, r, num, p;
// “try” - faz uma proteção em caso de erros na conversão de tipo (int)

try {

//O algoritmo de validação do CPF calcula o primeiro dígito verificador a partir dos 9
//primeiros dígitos do CPF,
//e em seguida, calcula o segundo dígito verificador a partir dos 9 (nove) primeiros dígitos do CPF, mais o primeiro dígito,
//obtido na primeira parte.
//Como exemplo, usarei o CPF fictício: 524344218-65.

// cálculo do primeiro dígito verificador

///--------

//sm: irá somar os resultados da multiplicação dos 9 dígitos informados (524344218) por exemplo

soma = 0;

//irá percorrer de forma decrescente os dígitos (10,9,8,7,6,5,4,3,2)

p = 10;

//estrutura de repetição para verificação do 1º dígito verificador

//a variável i irá repetir até i<9 incrementando de 1 em 1

for (i=0; i<9; i++) {

// converte o i-esimo caractere do CPF em um numero:

// por exemplo, transforma o caractere 0 no inteiro 0
//método charAt: retorna o caracter da posição “n” na string digitada.

num = (int)(CPF.charAt(i) - 48); // (48 é a posição de ‘0’ na tabela ASCII)

//soma os resultado da multiplicação entre o caracter da string e o decremento de “p”

//nesse exemplo: (num * p)=(5<em>10);(2</em>9)…(8*2)

soma = soma + (num * p);

//decrementa o valor de “p” (10,9,8,7…)

p = p - 1; }

//após a soma, devemos dividir o resultado por “11”

//Se o resto da divisão for maior ou igual a 2, então o dígito verificador é igual a 11 menos o resto da divisão (11 - r).

r = 11 - (soma % 11);

//se o resto da divisão for 10 ou 11

if ((r == 10) || (r == 11))

//então o  dígito verificador será 0

d10 = ‘0’;

else d10 = (char)(r + 48); // converte no respectivo caractere numérico

//cálculo do segundo dígito verificador

//como já sabemos o valor do primeito dígito, a variável “p” recebe o valor “11”

//isso indica que a variável “soma” irá conter o novo dígito localizado

soma = 0;

//irá percorrer de forma decrescente os dígitos (11,10,9,8,7,6,5,4,3,2)

p = 11;

//estrutura de repetição para verificação do 2º dígito verificador

//a variável i irá repetir até i<10 incrementando de 1 em 1

for(i=0; i<10; i++) {

// converte o i-esimo caractere do CPF em um numero:

// por exemplo, transforma o caractere ‘0’ no inteiro 0

//método charAt: retorna o caracter da posição “n” na string digitada.

num = (int)(CPF.charAt(i) - 48); // (48 é a posição de ‘0’ na tabela ASCII)

////soma os resultado da multiplicação entre o caracter da string e o decremento de “p”

//nesse exemplo: (num * p)=(5<em>11);(2</em>10)…(6*2) ---->6:primeiro dígito verificador no exemplo fictício

soma = soma + (num * p);

//decrementa o valor de “p” (11,10,9,8,7…)

p = p - 1; }

//a variável “r” armazena o resta da soma dividido por 11.

//assim, “r” será 11- (soma/11)

r = 11 - (soma % 11);

//se o resto for igual a 10 ou 11

if ((r == 10) || (r == 11))

//o segundo dígito verificador será "0"

d11 = 0;

//caso contrário, será efetuado uma conversão para o respectivo caractere numérico

else d11 = (char)(r + 48); // (48 é a posição de ‘0’ na tabela ASCII)

// valida se os dígitos calculados conferem com os dígitos informados.

if ((d10 == CPF.charAt(9)) && (d11 == CPF.charAt(10)))

//caso sim, será retornado true

return(true);

//caso não, será retornado false

else return(false);

//InputMismatchException: indica  se o token recuperado corresponde ao padrão

//para o tipo esperado, ou se o sinal está fora do intervalo para o tipo esperado.

} catch (InputMismatchException erro) { return(false);

}

}

//método utilizado para imprimir o cpf formatado

//o método substring “divide” uma string em pequenas partes . No exemplo ficará "[CPF removido]"

public static String imprimecpf(String CPF) {

System.out.println(CPF válido!);

return(CPF.substring(0, 3) + . + CPF.substring(3, 6) + . + CPF.substring(6, 9) + - + CPF.substring(9, 11));

}

}
Criado 17 de março de 2016
Respostas 0
Participantes 1