CT-e - Conhecimento de Transporte Eletrônico

Olá a todos,

Há alguém trabalhando com CT-e? Vi vários tópicos relacionados a NF-e, mas sobre CT-e não encontrei nada.
Eu estou começando a desenvolver, e pelo que estou vendo não há a mesma padronização em relação a NF-e.
Para o projeto de nota fiscal gerei as classes de consumo dos webservices a partir do wsimport, e consegui reutilizar as mesmas classes para diversos estados, apenas passando o endereço do webservice (não testei todos os estados).
Já para o conhecimento de transporte, consigo usar o wsimport para SP, mas não consegui utilizar as classes - creio que houve algum erro na geração.
Como minha maior urgência é para um cliente de MT, peguei os wsdl desse estado, e não consegui gerar as classes devido ao encoded não ser suportado por essa ferramenta.
Portanto, comecei a utilizar o Apache Axis. Consegui gerar as classes de consulta do status do serviço, envio o xml, mas recebo o erro 215: falha no schema.
Entretanto, o mesmo xml é considerado válido no validador de mensagens disponibilizado pela SEFAZ RS (http://www.sefaz.rs.gov.br/ASP/AAE_ROOT/CTE/SAT-WEB-CTE-VAL_1.asp). Inclusive para poder validar no RS peguei um erro no manual de integração versão 1.02, página 59, onde a tag “consStatServ” deve ser trocada pela tag “constStatServCte”. Porém, nenhum dos casos valida em MT.

E então, quem está desenvolvendo, em que passo está?
Tiveram problemas semelhantes?

Abraços.

Julio

eu tb tive esse problema e ja deu certo

conversei com o pessoal da sefaz de MT e eles mostraram o erro que ta no schema e foi reportado para RS mas eles ja solucionaram e voltou a funcionar

testa ai cara

javaCBA, mas qual a tag correta? “consStatServ” ou “constStatServCte” ?
Bom, de qualquer forma já tentei com ambas, e ainda dá erro. Abaixo o xml que estou enviando:

<?xml version="1.0" encoding="UTF-8"?> <consStatServCte xmlns="http://www.portalfiscal.inf.br/cte" versao="1.01"> <tpAmb>2</tpAmb> <xServ>STATUS</xServ> </consStatServCte>

ta errado

eh assim

<?xml version="1.0" encoding="UTF-8"?><consStatServCte versao="1.01" xmlns="http://www.portalfiscal.inf.br/cte"><tpAmb>2</tpAmb><xServ>STATUS</xServ></consStatServCte>

e o resultado ta voltando correto

<?xml version="1.0" encoding="UTF-8"?><retConsStatServCte versao="1.02" xmlns="http://www.portalfiscal.inf.br/cte"><tpAmb>2</tpAmb><verAplic>1.02</verAplic><cStat>107</cStat><xMotivo>107 - Servico em operacao.</xMotivo><cUF>51</cUF><dhRecbto>2009-07-10T10:05:58</dhRecbto><tMed>0</tMed><dhRetorno>2009-07-10T10:05:58</dhRetorno><xObs></xObs></retConsStatServCte>

Então, eu estava fazendo assim anteriormente, e dava erro…
Voltei a fazer assim, enviei o xml igualzinho ao que você mandou, e ainda dá 215.
Bastante estranho :?

Da ultima vez que olhei Ct-e, ainda estava em desenvolvimento. Ja esta liberado para o publico?

Rio Grande do Sul e São Paulo já disponibilizam o ambiente de produção.
Mato Grosso liberou homologação, mas pelo jeito tá com bastante erros ainda.

Parece-me que a partir de 01/08 MT já exige o CT-e (esse é meu prazo para entregar o sistema).

javaCBA, obrigado pela ajuda!
Seu modelo confirmou a correção do meu. Agora estou enviando normalmente. O problema era na SEFAZ MT mesmo.

Caso volte a ter problemas, teremos ups neste tópico. :lol:

javaCBA, mais uma dúvida: em outro tópico, eu vi você falando que já trabalha com SP.
você gera as classes dos webservices na mão?
eu tive problemas com o wsimport, mas acho que com o axis seria viável…

o que você utiliza / tentou utilizar?

po galera, tudo bem?

estou iniciando o desenvolvimento do CTE. ainda lendo a documentação e tal.
estou com duvidas aqui como ficaria o xml final gerado.

a documentação não mostra um exemplo completo. dai estou com dificuldade.

alguem poderia colocar aqui como ficaria um XML prontim pra ser enviado?

vlw

julio desenvolvi em java, mas soh vai ser obrigatorio pras empresas q nao solicitarem a prorrogacao

faz la cara…trabalha com tempo nisso

tenho o xml com os valores setados porem não sei como mandar pra sefaz.
Como vcs tem mais experiencia podem me ajudar?

utilizo netBeans 7.5 > crio um JAXB > seto todos os valores > converto em xml > e não sei como mandar

usa o axis pra gerar a classe cliente ou então faz na mao mesmo usando httpclient

não entendi.
Só quero mandar os dados setados para o devido metodo e ele me retornar algo.

então seta o cabecalho no header do soap e envia os dados como parametro

posta melhor sua duvida…vc quer o que? soh essa explicacao ou vc quer trecho de codigo

se tiver fazendo algo ai, posta seu codigo pra gente entender

Massa cara,

Até o momento estou com a documentação "Manual de Interação - Contribuinte versão 1.0.2"
(http://www.cte.fazenda.gov.br//docs/Manual_CTe_v1.02.pdf)
os arquivos são do site: http://www.fazenda.sp.gov.br/cte/ (Novo schema do CT-e)

achei no site do netBeans algo interessante: Vinculando WSDL a Java com JAXB (http://www.netbeans.org/kb/65/websvc/jaxb_pt_BR.html)
É perfeito, consigo utilizar com gets e sets, porem não consigo enviar para a Sefaz

no momento de enviar o CT-E:
Object objRet = new Object();
objRet = obj.createEnviCTe(tEnviCTe);

Porem retorna o codigo que mandei em xml.
Das duas uma: ou to utilizando o metodo errado, ou não to sabendo enviar.

resumindo:
Li a documentação http://www.cte.fazenda.gov.br//docs/Manual_CTe_v1.02.pdf;

  fiz os downloads;

  não conhecia a manipulação de xml e li :http://www.netbeans.org/kb/65/websvc/jaxb_pt_BR.html;

   com o JaxB consegui setar os valores porem quando tento enviar retorna o xml com os campos que setei.

tEnviCTe - > contem um tenvicte que tem uma coleção de CTE

       enviCte.ObjectFactory obj = new enviCte.ObjectFactory(); 
        Object objRet = new Object();
        objRet = obj.createEnviCTe(tEnviCTe);

Ou, seja: Não consigo enviar e ter uma resposta, pois não retorna erro.

Se vc puder mandar o cod do SOAP será ótimo.

vc ta confundindo

o jaxb trabalha apenas com xml, mas nao faz esse envio que vc quer

tem um manual facinho que te ensina criar uma classe para enviar seu xml para sefaz

http://www.guj.com.br/article.show.logic?id=180

qualquer duvida, posta ae

Olá,
muito obrigado pela dica, estou seguindo o tutorial, porem não entendi uma parte:

CRIANDO O WSDL PARA O WEB SERVICE Definida a classe com a lógica de negócio que será publicada como um Web Service, o próximo passo é criar o descritor WSDL para o serviço. Com base no WSDL gerado, também serão geradas as classes que fazem a orquestração do acesso ao Web service, em conjunto com o Apache Axis. Certifique-se de ter as bibliotecas do Apache Axis configuradas corretamente no CLASSPATH, como demonstrado na introdução. Para gerar o WSDL utiliza-se a ferramenta Java2WSDL, do Apache Axis. A linha de comando para a geração do WSDL é a seguinte.

java org.apache.axis.wsdl.Java2WSDL -o ../config/resource/rh.wsdl -l"http://localhost:8080/rh/services/RecursosHumanosWS" -n "urn:RecursosHumanos"  rh.RecursosHumanos  

quanto tento execultar informa o seguinte erro:

java.lang.ClassNotFoundException: org.achache.axis.wsdl.Java2WSDL

Jonas vc não queria soh gerar o cliente?

se for soh gerar o cliente, pula essa parte ai e usa o comando soh para gerar o cliente a partir da URL do web service. Ate entao achei que sua intencao era soh conectar com o web service do cte.

Se for, vc ta fazendo procedimentos errados

qto ao erro:

java.lang.ClassNotFoundException: org.achache.axis.wsdl.Java2WSDL

ta acontecendo porque vc nao carregou a classe, se vc tiver trabalhando diretamente no prompt, executa isso:

SET AXIS_HOME=c:/java/axis SET CLASSPATH=%CLASSPATH%;%AXIS_HOME%/axis.jar SET CLASSPATH=%CLASSPATH%;%AXIS_HOME%/saaj.jar SET CLASSPATH=%CLASSPATH%;%AXIS_HOME%/jaxrpc.jar SET CLASSPATH=%CLASSPATH%;%AXIS_HOME%/commons-logging-1.0.4.jar SET CLASSPATH=%CLASSPATH%;%AXIS_HOME%/commons-discovery-0.2.jar SET CLASSPATH=%CLASSPATH%;%AXIS_HOME%/wsdl4j-1.5.1.jar SET CLASSPATH=%CLASSPATH%;%AXIS_HOME%/activation.jar SET CLASSPATH=%CLASSPATH%;%AXIS_HOME%/mail.jar

lembre-se que essas bibliotecas sao importante spara o funcionamento do axis

no meu caso uso ela na pasta java da raiz. Muda o diretorio do AXIS_HOME para apontar para o diretorio onde ta essas lib e pronto

qualquer coisa, posta ae