então… esse ai passa batido…não pega o problema…
o problema esta ligado a tag infProt… no schema esta assim… mas não consigo fazer funcionar ainda…
<xs:sequence>
<xs:element name="NFe" type="TNFe">
<xs:key name="Id_NFe">
<xs:selector xpath="NFe/*"/> //elemento que contem chave
<xs:field xpath="infNFe"/> //campo que vai ser a chave
</xs:key>
</xs:element>
<xs:element name="protNFe" type="TProtNFe">
<xs:keyref name="Id_Prot" refer="Id_NFe">
<xs:selector xpath="protNFe/*"/> //elemento que "recebe" a chave
<xs:field xpath="infProt"/> //campo que vai ser a referencia da chave
</xs:keyref>
</xs:element>
</xs:sequence>
consegui arrumar… na verdade eu estava usando o pacote de schema PL_006preC ai baixei o PL_006e e ai foi na boa…
pq no 6e não tem essa chave de referencia que tem no 6c…
acho que os caras tinham meio q se perdido com o schema e o layout…
Pessoal estou tentando fazer client pro webservice statusservico, estão sendo gerados 6 arquivos como havia lido neste tópico, mas não está sendo gerada a classe NfeStatusServicoLocator(), gostaria de saber o por que e qual a finalidade desta classe, estou seguindo um exemplo de código postado neste tópico, as classes geradas são :
public static void main(String[] args) {
//Esse é o layout para o cabeçalho e rodapé para o Status do Serviço conforme o manual de integração explica
String nfeCabecMsg = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<cabecMsg xmlns=\"http://www.portalfiscal.inf.br/nfe\" " + "versao=\"1.02\">" + "<versaoDados>1.10</versaoDados>" + "</cabecMsg>";
String nfeDadosMsg = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<consStatServ " + " versao=\"1.10\"" + " xmlns=\"http://www.portalfiscal.inf.br/nfe\">" + "<tpAmb>2</tpAmb>" + "<cUF>15</cUF>" + "<xServ>STATUS</xServ>" + "</consStatServ>";
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", "PKCS11");
System.setProperty("javax.net.ssl.keyStore", "C:\\certificados\\RA.cer");//Aqui vem o arquivo do certificado do seu cliente
System.setProperty("javax.net.ssl.keyStorePassword", "oagb2010");//Aqui a senha deste certificado
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", "C:\\certificados\\certificado.keystore");//Aqui vem o arquivo criado através do comando keytool no passo 3
// As classes abaixo são as classes geradas atavés do arquivo WSDL no passo 1
NfeStatusServico service = new NfeStatusServicoLocator();
try {
NfeStatusServicoSoap nfeStatus = service.getNfeStatusServicoSoap(); <---esta não é gerada!
System.out.println(nfeStatus.nfeStatusServicoNF(nfeCabecMsg, nfeDadosMsg));// O retorno deve ser um XML com o status do serviço
} catch (Throwable e1) {
e1.printStackTrace();
}
}
Outro jeito de vizualisar e imprimir a NFe sem ter que instalar programa algum é utilizar o WebDANFE ( http://www.webdanfe.com.br ) WebDANFE . Basta arrastar o arquivo XML para este site que ele gera o PDF da NFE.
OMElement el = AXIOMUtil.stringToOM(s);
dados.setExtraElement(el);
NfeStatusServico2Stub.NfeCabecMsg cab = new NfeStatusServico2Stub.NfeCabecMsg();
cab.setVersaoDados("2.00");
cab.setCUF(cUF);
NfeStatusServico2Stub.NfeCabecMsgE cabE = new NfeStatusServico2Stub.NfeCabecMsgE();
cabE.setNfeCabecMsg(cab);
String status = stub.nfeStatusServicoNF2(dados, cabE).getExtraElement().toStringWithConsume(); // Erro aqui...
System.out.println("Status: "+status);[/code]
Exception:
org.apache.axis2.AxisFault: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:203)
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:435)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at emissor.webservices.status2.NfeStatusServico2Stub.nfeStatusServicoNF2(NfeStatusServico2Stub.java:174)
at emissor.lib.NFe.statusServico(NFe.java:65)
ainda não entendi o que fazer com esse wsdl ?
devo baixar e salvar como xml ?
importar no eclipse ?
e o pfx, o que tem a ver ?
não esta claro o que fazer
no internet explorer não abre
no firefox pede pra adicionar um certificado, eu adiciono, e dae da a seguinte mensagem no browser
Falha na conexão segura
Ocorreu um erro durante uma conexão com homologacao.nfe.fazenda.pr.gov.br.
O sistema remoto SSL não esperava uma mensagem do processo de handshake que recebeu.
(Código do erro: ssl_error_handshake_unexpected_alert)
* A página que você está tentando abrir não pode ser exibida porque a autenticidade dos dados recebidos não pôde ser comprovada.
* Por favor, contate os responsáveis pelo site para informá-los sobre este problema. Você também pode usar comando localizado no menu Ajuda para reportar o site como incompatível.
Olha só, o WSDL é o modelo das classes dos Webservices que você vai usar.
Para criar as classes a partir dos WSDL você usar o Apache CFX depois você usa a classe já pronta somente para fazer o acesso ao Webservice, passando os devidos argumentos.
Um outro exemplo é usar o próprio wsimport que já está no java 6:
[quote]=========== Gerando as classes do WebService
Para quem utiliza o Java 6, existe um utilitário chamado wsimport, muito bacana, que
já gera as classes para acessar o WebService da Sefaz.
Uma das vantagens do wsimport é que não precisa enviar outros .jars pois a tecnologia
de acesso já está no java 6.[/quote]
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Access restriction: The constructor Provider() is not accessible due to restriction on required library C:\Program Files\Java\jre6\lib\jsse.jar
Access restriction: The type Provider is not accessible due to restriction on required library C:\Program Files\Java\jre6\lib\jsse.jar
at br.inf.portalfiscal.www.nfe.wsdl.NfeStatusServico.Iniciar.main(Iniciar.java:14)