Pessoal, estou há duas semanas sem conseguir resolver este problema.
Com Axis2 eu crio os clientes para acessar o webservice. Passo por toda a parte de autenticação e assinatura sem problema, mas quando eu evoco o método do webservice (que prepara uma mensagem soap) recebo o seguinte erro:
xception in thread "main" org.apache.axis2.AxisFault: Value cannot be null.
Parameter name: schemas
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:446)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:371)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at org.tempuri.NfseServicesStub.recepcionarLoteRps(NfseServicesStub.java:1062)
at Teste.main(Teste.java:42)
Ativando o debug do Axis, este trecho chama a atenção:
0:37:55,527 DEBUG content:70 - << “nvelope xmlns:s=“http://schemas.xmlsoap.org/soap/envelope/”><s:Body><s:Fault>s:ClientValue cannot be null.
[\n]”
10:37:55,527 DEBUG content:70 - << “Parameter name: schemasValue cannot be null.
[\n]”
10:37:55,528 DEBUG content:84 - << “Parameter name: schemas</s:Fault></s:Body></s:Envelope>”
Que esta está faltando? Eu não estou entendendo. Lembro que estou acessando um webserice que roda em plataforma .NET.
Abraço
Caro Flávio,
eu também criei um web service cliente, só que para se conectar ao web service precisa de assinatura digital, a empresa já me passou o arquivo.pfx do certificado digital, mas não sei como faço para incluir essa autenticação.
Por favor, vc pode me dá uma dica de como eu faço isso?
Obrigado.
Não sei se foi melhor você reviver o tópico do que criar um novo, mas pra evitar que você precise fazer os 2, já te mando uma ajuda.[code] public static void configurar(){
String CAMINHO_DO_CERTIFICADO = “”;
String SENHA_DO_CERTIFICADO = “”;
String CAMINHO_ARQUIVO_CACERTS = “”;
System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
System.clearProperty("javax.net.ssl.keyStore");
System.clearProperty("javax.net.ssl.keyStorePassword");
System.clearProperty("javax.net.ssl.trustStore");
System.setProperty("javax.net.ssl.keyStore", CAMINHO_DO_CERTIFICADO );
System.setProperty("javax.net.ssl.keyStorePassword", SENHA_DO_CERTIFICADO);
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", CAMINHO_ARQUIVO_CACERTS);
}[/code]Não sei se precisa do arquivo com [b]cacerts[/b] mas sei que para os serviços da SEFAZ precisa
Oi Rodrigo,
o serviço é da Sefaz sim, e não foi me passado o arquivo cacerts e nem a senha do certificado. vou pedir essas informações à SEFAZ, testar o código que vc me passou e posto o resultado aqui.
Obrigado.
Rodrigo, o sistema que estou trabalhando se conecta com o Web Service da Sefaz do estado do Ceará, o sistema não é de nota fiscal e sim de gerar Documento de Arrecadação Estadual (DAE). Esse codigo gerador do Cacerts serve pra esse web service?
esse código ele gera um arquivo é isso? ele rodou com sucesso aqui, mas não estou conseguindo localizar o arquivo gerado.