Bom Dia a Todos estou precisando acessar um webservice da receita para enviar arquivos da NFP Nota Fiscal Paulista, nao sou um expert em java aida como muito de voces…
mas ja dei uma lida em muito material altes de perguntar a voces, sobre o que é web service tudo mais …
o enderweço do serviço que preciso acessar é esse…
https://www.nfp.fazenda.sp.gov.br/ws/arquivocf.asmx?WSDL
so que eu to usando u axis para fazer as chamas mas os tutoriais que arrumei sao muito simples mas me deu uma ideia de como fazer…
crie uma classe desse geito so par teste…
mas empaco e na hora de acessar os metodos do servico
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Service;
import org.apache.axis.client.Call;
public class NFPKawakami {
public static void main(String[] args) {
// Endereço, local onde encontra-se o Web Service
String sServico = "https://www.nfp.fazenda.sp.gov.br/ws/arquivocf.asmx";
String sBody = new String();
sBody = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";
sBody += "<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">";
sBody += "<soap12:Header>";
sBody += "<Autenticacao Usuario=\"user\" Senha=\"senha\" CNPJ=\"0000000000000\" CategoriaUsuario=\"1\" xmlns=\"https://www.nfp.sp.gov.br/ws\"/>";
sBody += "</soap12:Header>";
sBody += "<soap12:Body>";
sBody += "<Enviar xmlns=\"https://www.nfp.sp.gov.br/ws\">";
sBody += "<NomeArquivo>nomeArquivo</NomeArquivo>";
sBody += "<ConteudoArquivo>0</ConteudoArquivo>";
sBody += "<EnvioNormal>false</EnvioNormal>";
sBody += "<Observacoes></Observacoes>";
sBody += "</Enviar>";
sBody += "</soap12:Body>";
sBody += "</soap12:Envelope>";
try {
// Criando e configurando o serviço
Call call = (Call) new Service().createCall();
// Configurando o endereço.
call.setTargetEndpointAddress(sServico);
// Marcando o método a ser chamado.
call.setOperationName("Enviar");
// Parâmetros da função soma.
Object[] Parametros = new Object[]{new Integer(2),new Integer(4)};
//Parametros[0] = String("");
// Retorno da Função
Integer ret = (Integer)call.invoke(Parametros);
// Imprime o resultado: ret = 2 + 4.
System.out.println("Resultado : " + ret);
} catch (ServiceException e) {
System.out.println("ServiceException : " + e);
} catch (RemoteException e) {
System.out.println("RemoteException : " + e);
}
}
}
ERRO: RemoteException : Possible SOAP version mismatch: Envelope namespace http://schemas.xmlsoap.org/soap/envelope/ was unexpected. Expecting http://www.w3.org/2003/05/soap-envelope.
Ou seja tenho que passar mais parametros como cabecalho Heander, Envelope igual na String sBody, mas nao sei como fazer isso…
se algem poder me ajudar agradeceria muito…