Boa tarde pessoal.
Queria saber se alguém que já desenvolveu alguma solução e ou integrou alguma aplicação com a prefeitura de Curitiba utilizando webservices já obteve este tipo de erro:
<?xml version="1.0"?>
<ConsultarSituacaoLoteRpsResposta xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NumeroLote xsi:nil="true" />
<Situacao xsi:nil="true" />
<ListaMensagemRetorno>
<MensagemRetorno>
<Codigo>E504</Codigo>
<Mensagem>O certificado digital do prestador de serviços é obrigatório.</Mensagem>
<Correcao>Envie junto a requisição do serviço o certificado digital do prestador de serviços.</Correcao>
</MensagemRetorno>
</ListaMensagemRetorno>
</ConsultarSituacaoLoteRpsResposta>
Já vinculei o certificado de transmissão (tanto o oferecido pela ISS curitiba (piloto) quanto o certificado da empresa credenciado pela ICP Brasil) com o ISS Curitiba, porém não tive sucesso.
Vou postar um exemplo que desenvolvi para realizar a comunicação:
package recepcaoloterps;
import br.com.e_governeapps2.www.WS_x0020__x0020_NFSE_x0020_V1001Stub;
import br.com.e_governeapps2.www.WS_x0020__x0020_NFSE_x0020_V1001Stub.RecepcionarXml;
import br.com.e_governeapps2.www.WS_x0020__x0020_NFSE_x0020_V1001Stub.RecepcionarXmlResponse;
import java.io.IOException;
import java.security.Security;
import org.apache.axis2.AxisFault;
public class RecepcaoLoteRps
{
public String getMensagemRetorno(String metodo, String fileXML) throws AxisFault, IOException
{
WS_x0020__x0020_NFSE_x0020_V1001Stub stub = new WS_x0020__x0020_NFSE_x0020_V1001Stub();
RecepcionarXml recepcionarXml = new RecepcionarXml();
recepcionarXml.setMetodo(metodo);
recepcionarXml.setXml(util.LerXML.lerXML(fileXML));
RecepcionarXmlResponse recepcionarXmlResponse = stub.recepcionarXml(recepcionarXml);
/*Informações do Certificado Digital*/
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", "C:\\Users\\thiago.beserra\\Desktop\\pasta_xml\\piloto.pfx");
System.setProperty("javax.net.ssl.keyStorePassword", "senhapiloto");
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", "C:\\Users\\thiago.beserra\\Desktop\\pasta_xml\\NFeCacerts");
return recepcionarXmlResponse.getRecepcionarXmlResult();
}
}
Estou carregando o certificado digital no exemplo, mais especificamente, utilizando este bloco de código:
/*Informações do Certificado Digital*/
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", "C:\\Users\\thiago.beserra\\Desktop\\pasta_xml\\piloto.pfx");
System.setProperty("javax.net.ssl.keyStorePassword", "senhapiloto");
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", "C:\\Users\\thiago.beserra\\Desktop\\pasta_xml\\NFeCacerts");
Se alguém ja desenvolveu para NFS-e e já teve o mesmo problema, agradeço por qualquer ajuda.
Obrigado.