Ajuda com WebServices

5 respostas
G

E pessoal

eu tou gerando o webservices para Nfe e baixei os wsdl do ambiente de homologação da sefaz RS

Estou chamando status servico assim:
String nfeCabecMsg = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"  
		             + "<cabecMsg xmlns=\"http://www.portalfiscal.inf.br/nfe\" "  
		             + "versao=\"1.02\">" + "<versaoDados>1.07</versaoDados>"  
		             + "</cabecMsg>";  
		         String nfeDadosMsg = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"  
		             + "<consStatServ " + " versao=\"1.07\""  
		             + " xmlns=\"http://www.portalfiscal.inf.br/nfe\">"  
		            + "<tpAmb>2</tpAmb>" + "<cUF>42</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", "PKCS12");  
		         System.setProperty("javax.net.ssl.keyStore","C:\\SEC\\certificado.pfx"); 
		         System.setProperty("javax.net.ssl.keyStorePassword", "senha"); 
		          
		         System.setProperty("javax.net.ssl.trustStoreType", "JKS");  
		         System.setProperty("javax.net.ssl.trustStore", "C:\\SEC\\meukeystore.jks");          
		         
		         
		         
		NfeStatusServico servico = new NfeStatusServicoLocator();
		NfeStatusServicoSoap soap = servico.getNfeStatusServicoSoap();
		soap.nfeStatusServicoNF(nfeCabecMsg, nfeDadosMsg);

Mas estou com pau no Axis, então queria uma ajuda para usar o Xfire para consumir este webservice..

alguem pode me ajudar por favor! valeu

5 Respostas

G

ninguem para dar uma força??

G

ninguem??

por favor, meu emprego ta dependendo disso… por favor… qualquer dica…!!

obrigado

Andre_Brito

Calma.
Que erro que dá na parte do Axis?

Já tentou dar uma lida nesse ou nesse cara?

E não se desespere que pra tudo tem jeito.

G

Opa Andre, blz? valeu por responder...

Eu instalei o axis, mas deu tanto pau que resolvi tirar hehe

entao comecei a testar o Xfire, ja fiz uns testes para aprender mexer um pouquinho com ele, e agora consumi uns webservices so para teste.. deu tudo certo!

Na chamada da service da NFe, no codigo que postei ai em cima, eu só inclui o seguinte trecho alterado:

NfeStatusServico servico = new NfeStatusServicoLocator();
		         
		        Service serviceModel = new ObjectServiceFactory().create(NfeStatusServicoSoap.class);
		        
		        XFire xfire = XFireFactory.newInstance().getXFire();
		        XFireProxyFactory factory = new XFireProxyFactory(xfire);
		        
		        String serviceUrl = "https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/nfestatusservico/nfestatusservico.asmx";
		        

		        NfeStatusServicoSoap client = null;
		        client = (NfeStatusServicoSoap) factory.create(serviceModel,serviceUrl);
		        System.out.println(client.nfeStatusServicoNF(nfeCabecMsg, nfeDadosMsg));



.....


meu services.xml e  omapeamento do servico que estou querendo chamar:

<service xmlns="http://xfire.codehaus.org/config/1.0">
           <name>NfeStatusServico</name>
           <namespace>NfeStatusServico</namespace>
           <serviceClass>br.inf.portalfiscal.www.nfe.wsdl.NfeStatusServico</serviceClass>
           <implementationClass>br.inf.portalfiscal.www.nfe.wsdl.NfeStatusServicoLocator</implementationClass>
     </service>

Ai que está... Não sei se estou setando as coisas certas, mas recebi esta mensagem:

Exception in thread "main" org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Couldn't send message.
org.codehaus.xfire.fault.XFireFault: Couldn't send message.
	at org.codehaus.xfire.fault.XFireFault.createFault(XFireFault.java:89)
	at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:30)
	at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
	at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)20:36:51,351 ERROR HttpChannel:144 - 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

Caused by: 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

Acredito que seja pq estou usando um certificado invalido... de teste, se for isso, o certificado, entao a implementação esta certa?

vlw

Andre_Brito

Sinceramente, não sei te responder isso. Mas acredito que antes de ‘confiar’ você deveria testar com um certificado válido. Não tem como gerar um usando o keytools? Tem um tutorial aqui no GUJ mesmo.

Sobre o Axis, que problemas você encontrou? Você estava usando o Axis ou o Axis2? O Axis2 tem um bat, chamado de wsdl2java que pega um wsdl e gera uma classe Java com todos os serviços e coisas do tipo. Poderia apontar as desvantagens do Axis? Você pegou e assim… falou algo como “ah, tá dando muito problema, vou mudar”?

Desculpe as perguntas… É que estou estudando Axis2 e gostaria de saber as dificuldades que você encontrou.

Criado 12 de janeiro de 2010
Ultima resposta 17 de jan. de 2010
Respostas 5
Participantes 2