Tenho a seguinte dúvida:
Minha aplicação já faz a emissão normalmente de CTe e NFe com certificado A3.
Faço todo procedimento normal de carregar o certificado do cliente, carregar o certificado do servidor de um Cacerts, utilizo JAXB para gerar o XML, etc.
Porém no certificado do cliente, sempre tenho que importar a cadeia de certificado para ele.
Esse procedimento é NORMAL? Nos fóruns é raro encontrar esse relato.
Quando não importo, tenho o seguinte erro:
{http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: Processing instructions are not allowed within SOAP messages
at org.apache.axis.encoding.DeserializationContext.startDTD(DeserializationContext.java:1161)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.doctypeDecl(AbstractSAXParser.java:339)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.doctypeDecl(XMLDTDValidator.java:724)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.scanDoctypeDecl(XMLDocumentScannerImpl.java:671)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:931)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
Recentemente implementei o envio através dos certificados A1,
ele carrega, assina, mais na hora de enviar da o mesmo erro.
Utilizei a aplicação http://portecle.sourceforge.net/ para incluir no certificado A1 a cadeia respectiva, porém,
continua o mesmo erro, como se o certificado do cliente estivesse inválido para executar o consumo do web service.
A cadeia de certificado não precisa estar somente no certificado do Webservice, como exemplo:
System.setProperty(“javax.net.ssl.trustStore”, “c:\RPA\CTeCacertsSVRS”);
Observação: Estou utilizando o “Axis 1.4”. Testei com o “Axis 2.0” funciona normal sem precisar importar a cadeia de certificado para o certificado.
Obrigado.
