é realmente concordo
o fato de nosso país ser grande também ajuda com isso
completando, ja usei oos wsld de AM, RS e SP, totos foram compativeis com minha aplicação…
é realmente concordo
o fato de nosso país ser grande também ajuda com isso
completando, ja usei oos wsld de AM, RS e SP, totos foram compativeis com minha aplicação…
alguem sabe me dizer se o ambiente de homologação do sefaz de sp tem prazo para utilização ?
fiz as aplicações do webservices funcionou td ok , tanto envio, consulta
mais desde sexta passada está dando erro e nao foi alterado nda
fui verificar no site e o certificado dos webservices que eles disponibiliza o de homologação a validade venceu dia 12/06 , estranho q até dia 18 eu usei normalmente qdo rodo a aplicação da este erro aqui
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
soh para entender melhor a parte do codigo q me retorna este erro eh
try
{
ConsultaStatus t = new ConsultaStatus();
t.nfeServi(certificado, senha, cod_uf);
System.out.println(“Serviço em Operacao”);
}
catch(Exception e)
{
System.out.println(“Erro ao acessar o Serviço \n\n” + e.toString());
}
Atualize a cadeia de certificado Raiz.
qual seria essa cadeia de certificado Raiz
os certificados disponiveis no sefaz-sp ja instalei os que estao disponivel
Veja se este post ajuda a resolver o problema: Falha na Conexão - Ambiente de Homologação - SEFAZ/SP - solucionado.
tive uns problemas parecidos usando certificado A3 smartcard, era somente importar a cadeia de certificados…
https://ccd.serpro.gov.br/correios/funcoes/cadeia.html
tbm baixo os certificados do servidor e aplico no ambiente sempre que vou acessar um wsdl
resolvi o problema instalando o certificado ac_certisign_multipla_v3.p7b
e usando o este comando aqui
$JAVA_HOME/bin/keytool -import -alias ACRAIZ -keystore
$JAVA_HOME/jre/lib/security/cacerts -trustcacerts -file ACraiz.cer
soh assim voltou a funcionar a bagaça
algum de vcs consegui fazer isso em ambiente linux ? mais precisamente em um servidor linux ?
Ola a todos, sou novo no GUJ, estou desenvolvendo a NFe e estou com um dificuldade na hora de gerar o lote, li todo o manual e pelo que entendi nos padrões .xsd para envio dos xml, gero a NFe, depois gero o lote (EnvNfe), porém não estou conseguindo gerar o lote, esta dando um erro.
Gero a NFe com base nos .java que gero com o nfe_v1.10.xsd e o lote uso os java do enviNFe_v1.10.xsd.
Porém ambos tem classes com o mesmo nome.
Estou usando o JAXB para gerar os xml.
Gero a NFe dessa maneira
...
JAXBContext context = JAXBContext.newInstance("com.tc.nfe.vo.nfe");
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = schemaFactory.newSchema(new File("C:\\Users\\daniel\\Desktop\\Work\\SafeTech\\PL_005c\\nfe_v1.10.xsd"));
Marshaller marsh = context.createMarshaller();
marsh.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, new Boolean(true));
JAXBElement<TNFe> eTnfe = new ObjectFactory().createNFe(TNFe);
marsh.marshal(eTnfe, new FileOutputStream("C:\\Temp\\baista.xml"));
e ele me gera os xmls de cada uma das notas…
Mas ai quando vou gerar o lote ocorre um erro pois os ObjectFactory gerado pelos dois xsd que citei antes são diferentes.
Estou me basiando com um código que encontrei aqui no GUJ para montar o lote
try {
JAXBContext context = JAXBContext.newInstance("com.tc.nfe.vo");
Unmarshaller unmarshaller = context.createUnmarshaller();
TEnviNFe t = new TEnviNFe();
t.setIdLote("1234");
t.setVersao("32456786");
JAXBElement<TNFe> element = (JAXBElement<TNFe>) unmarshaller.unmarshal(new File("minha nfe"));
t.getNFe().add(element.getValue());
Marshaller marshaller = context.createMarshaller();
JAXBElement<TEnviNFe> eTnfe = ( new ObjectFactory()).createEnviNFe();
marshaller.marshal(eTnfe, new FileOutputStream( new File("lote de destino")));
} catch (JAXBException jaxbe){
jaxbe.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
Eis o problema, se uso o ObjectFactory do nfe_v1.10.xsd não tenho o metodo createEnviNFe(TEnviNFe) e se uso o ObjectFactory do enviNFe_v1.10.xsd ai não tenho o metodo createNFe(TNFe); E se para gerar a nota uso o ObjectFactory do nfe_v1.10.xsd e para gerar o lote uso o ObjectFactory do enviNFe_v1.10.xsd ai ocorre um erro do JAXB na hora de montar o lote dizendo que esperava elemento do tipo TEnviNFe mas encontrou do tipo TNFe.
Até consigo gerar o lote customizando o ObjectFactory do nfe_v1.10.xsd. Se adiciono o codigo abaixo funciona, mas nao acredito que seja a forma correta de ser feito.
private final static QName _EnviNFe_QNAME = new QName("http://www.portalfiscal.inf.br/nfe", "enviNFe");
...
...
...
/**
* Create an instance of {@link JAXBElement }{@code <}{@link TEnviNFe }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://www.portalfiscal.inf.br/nfe", name = "enviNFe")
public JAXBElement<TEnviNFe> createEnviNFe(TEnviNFe value) {
return new JAXBElement<TEnviNFe>(_EnviNFe_QNAME, TEnviNFe.class, null, value);
}
Estou a dois dias com esse problema… o que estou fazendo de errado? Estou usando o o plugin do JAXB 2.1 do eclipse para transformar os .xsd em .java. Quam já fez essa montagem dos lotes, como que procederam para obter os .java dos xsd?
Obrigado
Pessoal, preciso de um help
estou usando o JAXB pra gerra meu xml dessa forma:
public class RunnerNFEConsulta {
public static void main(String[] args) throws Exception{
NFEConsultaServico root = new NFEConsultaServico();
root.setIdentificacao(2);
root.setCodigoConsultada(22);
root.setServicoSolicitado("STATUS");
toXML(root);
}
public static void toXML(NFEConsultaServico root)
throws JAXBException {
JAXBContext ctx = JAXBContext.newInstance(NFEConsultaServico.class);
Marshaller marshaller = ctx.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
//marshaller.marshal(root, System.out);
marshaller.marshal(root, new File("src/nfe/resources/nfeStatusServicoNF.xml"));
}
}
como faço pra fazer a validação usando o JAXB, ja baixei os Schemas preciso usar o consStatServ_v99.99.xsd e o retorno retConsStatServ_v99.99.xsd
como posso fazer isso ? abaixo a classe que contem o corpo do meu xml e ele prórpio, abraços, precisod e ajuda não estou conseguindo fazer.
@XmlRootElement(name = "consStatServ")
@XmlAccessorType(XmlAccessType.FIELD)
public class NFEConsultaServico {
/**
* Versão do leiaute.
*/
@XmlAttribute
private final String versao;
@XmlAttribute
private final String xmlns;
/**
* Identificação do Ambiente:
* 1 â?? Produção / 2 - Homologação
*/
@XmlElement(name = "tpAmb")
private Integer identificacao;
/**
* Código da UF consultada.
*/
@XmlElement(name = "cUF")
private Integer codigoConsultada;
/**
* Serviço solicitado â??STATUSâ??.
*/
@XmlElement(name = "xServ")
private String servicoSolicitado;
public NFEConsultaServico() {
versao = "1.07";
xmlns = "http://www.portalfiscal.inf.br/nfe";
}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<consStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.07">
<tpAmb>2</tpAmb>
<cUF>22</cUF>
<xServ>STATUS</xServ>
</consStatServ>
[quote=aix]Pessoal, preciso de um help
estou usando o JAXB pra gerra meu xml dessa forma:
public class RunnerNFEConsulta {
public static void main(String[] args) throws Exception{
NFEConsultaServico root = new NFEConsultaServico();
root.setIdentificacao(2);
root.setCodigoConsultada(22);
root.setServicoSolicitado("STATUS");
toXML(root);
}
public static void toXML(NFEConsultaServico root)
throws JAXBException {
JAXBContext ctx = JAXBContext.newInstance(NFEConsultaServico.class);
Marshaller marshaller = ctx.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
//marshaller.marshal(root, System.out);
marshaller.marshal(root, new File("src/nfe/resources/nfeStatusServicoNF.xml"));
}
}
como faço pra fazer a validação usando o JAXB, ja baixei os Schemas preciso usar o consStatServ_v99.99.xsd e o retorno retConsStatServ_v99.99.xsd
como posso fazer isso ? abaixo a classe que contem o corpo do meu xml e ele prórpio, abraços, precisod e ajuda não estou conseguindo fazer.
@XmlRootElement(name = "consStatServ")
@XmlAccessorType(XmlAccessType.FIELD)
public class NFEConsultaServico {
/**
* Versão do leiaute.
*/
@XmlAttribute
private final String versao;
@XmlAttribute
private final String xmlns;
/**
* Identificação do Ambiente:
* 1 â?? Produção / 2 - Homologação
*/
@XmlElement(name = "tpAmb")
private Integer identificacao;
/**
* Código da UF consultada.
*/
@XmlElement(name = "cUF")
private Integer codigoConsultada;
/**
* Serviço solicitado â??STATUSâ??.
*/
@XmlElement(name = "xServ")
private String servicoSolicitado;
public NFEConsultaServico() {
versao = "1.07";
xmlns = "http://www.portalfiscal.inf.br/nfe";
}
[code]
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 2 22 STATUS [/code][/quote]Ninguem ?
por favor, preciso de ajuda.
Pena cara, sou verdinho em JAXB
mas se isso ajuda, os xsd da receita são meio zoados,
entao pode acontecer de seus objetos gerados pelo jaxb não condizerem com os que esta tentando fazer unmarshall
por isso fiz meus objetos na “maneta”
abraço
F-Schmitt,
Foi justamente isso q perguntei num outro tópico, sobre criar na mãozona ou não, pq eu estou começando
a desenvolver ao minha NFe em caráter de urgência, tava pensando em criar as classes na mão, daí fiquei
sabendo do recurso do JAXB, blz! acabei de conseguir, gerou as classes, só q n entendi como usá-las ainda kkk e
resolvi entrar aqui novamente (no forum) pra v se alguém comentava algo sobre, daí vi seu comentário da
possibilidade dele (jaxb) n gerar como o esperado.
Sinceramente, n sei o que fazer *rrr
Eu to quase pegando um modelo de NFe já gerado, e criar minhas classes me baseando nesse modelo.
Cara, não usei o jaxb na prática, mas em teoria ele pega o XSD gera as classes do modelo do xml. Essas classes você irá popular com os dados da Nf, por exemplo, depois fazer o marshall (geração) para o xml.
Acontece que os XSD não estão perfeitos e acabaram gerando um xml fora da especificação, então resolvi fazer essas classes na mão, para popular e depois fazer o marshall.
ex:
private class Teste{
private int num=200;
private String nome="Fernando";
gets...
sets...
}
iria gerar um xml assim:
<Teste>
<num>200</num>
<nome>Fernando</nome>
</Teste>
espero ter ajudado
[quote=f-schmitt]Cara, não usei o jaxb na prática, mas em teoria ele pega o XSD gera as classes do modelo do xml. Essas classes você irá popular com os dados da Nf, por exemplo, depois fazer o marshall (geração) para o xml.
Acontece que os XSD não estão perfeitos e acabaram gerando um xml fora da especificação, então resolvi fazer essas classes na mão, para popular e depois fazer o marshall.
[/quote]
cara eu usei JAXB agou estou assinando e não tive nenhum problema, mas fiz diferente, não pego os XSD e gero as classes do modelo xml, eu crio classes java beans mas uso as anotações do JAXB entao ele gera meu xml e depois e valido o xml gerado com o xsd é tipo classes anotadas do hibernate só que ao invés de eu criar tabelas no banco eu escrevo no xml. o que eu quero agora é assinar meu xml, abraços. veja o exemplo aqui nesse meu posthttp://www.guj.com.br/posts/list/135/72325.java
Caramba, os caras tb são fogo, passar os XSDs assim, eu n sabia disso, eu tava começando a implementá-las.
Mas pra fazer na mãozona vc usou o manual q eles disponibilizam então?
é bem conforme o aix falou, o negocio é montar os beans como que está no layout do manual de integração, depois assinar, validar e enviar para o webservice da sefaz
f-schmitt
Ainda vou tentar desenvolver, pelo menos a parte de gerar o XML q eu teria q fazer de qq jeito, mas
já tô apanhando desde o início, decidi fazer como vc sugeriu, através do manual… mas de cara,
na minha tag infNfe a “versao” está vindo antes do “Id” e n consegui inverter essa órdem, qdo penso
no que vem pela frente… *rrr
Mas vou tentar até qdo puder, se mais uma semana o bicho pegar, vou apelar pro C#… (de onde eu vim *r).
Falew.
[quote=UpTheIrons]f-schmitt
Ainda vou tentar desenvolver, pelo menos a parte de gerar o XML q eu teria q fazer de qq jeito, mas
já tô apanhando desde o início, decidi fazer como vc sugeriu, através do manual… mas de cara,
na minha tag infNfe a “versao” está vindo antes do “Id” e n consegui inverter essa órdem, qdo penso
no que vem pela frente… *rrr
Mas vou tentar até qdo puder, se mais uma semana o bicho pegar, vou apelar pro C#… (de onde eu vim *r).
Falew.[/quote]
isso não importa os xml testam o conteudo das tag’s não a localização, abraços.
aix,
Blz cara, domingo e tô aki no pega desde cedo, valeu pela informação,
vou continuar por aqui.
Aproveitando o tópico sobre a NF-e, alguém já ouviu falar de nota de complemento par NF-e?
Achei esse pdf mas não sei nada sobre a sua veracidade.
Estou em dúvida se realmente teremos que implementá-la e qual será o padrão do xml.
As informações que tenho encontrado sobre NF-e de complemento são que ela não está sendo implementada pelo governo, só que são informações com data menor que 2008.