| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/09/2010 14:14:39
|
f-schmitt
JavaChild
![[Avatar]](/images/avatar/5f96320c454aed712e4545adacdba754.jpg)
Membro desde: 29/07/2006 08:25:22
Mensagens: 116
Localização: Gravatal
Offline
|
não seria mais facil você gerar o acesso ao wsdl usando axis2 ?
fica bem facil de usar....
|
Java, Clarion, HB++, PostgreSQL |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/09/2010 14:15:56
|
starkiller
JavaTeenager
Membro desde: 17/09/2010 17:39:19
Mensagens: 170
Localização: Manaus - Am
Offline
|
f-schmitt wrote:não seria mais facil você gerar o acesso ao wsdl usando axis2 ?
fica bem facil de usar....
Pode ate ser, vou tentar fazer aqui!
|
Desenvolvedor Java Mobile + Web
Android Developer too!
Só o Heavy Metal Salva!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/09/2010 14:36:14
|
starkiller
JavaTeenager
Membro desde: 17/09/2010 17:39:19
Mensagens: 170
Localização: Manaus - Am
Offline
|
f-schmitt, vc teria algum exemplo de como eu chamo o servico de recepcao, usando o gerador do Axis2....ta bem complicado de enteder essas classes geradas por ele. Vc poderia me ajudar?
This message was edited 1 time. Last update was at 23/09/2010 14:37:02
|
Desenvolvedor Java Mobile + Web
Android Developer too!
Só o Heavy Metal Salva!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/09/2010 18:28:50
|
starkiller
JavaTeenager
Membro desde: 17/09/2010 17:39:19
Mensagens: 170
Localização: Manaus - Am
Offline
|
Vlw Galera, consegui ja implementar pelo axis 2!! Vlw pela forca de todos!
|
Desenvolvedor Java Mobile + Web
Android Developer too!
Só o Heavy Metal Salva!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/11/2010 10:49:03
|
vanderlsilva
Smalltalk
Membro desde: 19/11/2010 10:26:44
Mensagens: 2
Offline
|
Amigo o que vc fez pra resolver esse problema... tentei de tudo e estava para desistir até que encontrei nesse forum que vc tinha o mesmo problema.. mas não consegui entender o que vc fez pra resolver.
Pode me ajudar por favor?
19/11/2010 09:26:11 com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection post
SEVERE: SAAJ0009: Message send failed
19/11/2010 09:26:11 Soap main
SEVERE: null
com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: java.security.PrivilegedActionException: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Message send failed
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:157)
Caused by: java.security.PrivilegedActionException: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Message send failed
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:151)
... 2 more
Caused by: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Message send failed
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:355)
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection$PriviledgedPost.run(HttpSOAPConnection.java:180)
... 4 more
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/11/2010 11:25:30
|
alves.Felipe
GUJ Ranger
![[Avatar]](/images/avatar/1d225d267a78f71ea5abb2364f4e91c4.jpg)
Membro desde: 21/01/2008 13:45:56
Mensagens: 766
Localização: Curitiba - Pr
Offline
|
vanderlsilva , como vc gerou suas classes? usou Axis 2?
|
Felipe Alves |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/11/2010 13:55:13
|
starkiller
JavaTeenager
Membro desde: 17/09/2010 17:39:19
Mensagens: 170
Localização: Manaus - Am
Offline
|
Cara seguinte, eu usei Axis 2 pra gerar as classes apartir do wsdl! Usei a ferramenta que ja vem no Eclipse. Feito isso implementei minha classe de envio usando os metodos do das classe geradas pelo Axis 2:
Ficow assim:
public String sendDpec(String xml) throws Exception{
System.out.println("Entrei no Metodo!");
String retorno = null;
String dadosXml = xml;
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", certificateUrl);//Aqui vem o arquivo do certificado do seu cliente
System.setProperty("javax.net.ssl.keyStorePassword", keypass);//Aqui a senha deste certificado
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", keyStoreUrl);//Aqui vem o arquivo criado atrav�s do comando keytool
System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true");
dadosXml = "<pog>"+dadosXml.substring(dadosXml.indexOf("?>")+2)+"</pog>";
SCERecepcaoRFBStub.SceCabecMsg cabec = new SCERecepcaoRFBStub.SceCabecMsg();
cabec.setVersaoDados("1.01");
SCERecepcaoRFBStub.SceCabecMsgE cabecMsgE = new SCERecepcaoRFBStub.SceCabecMsgE();
cabecMsgE.setSceCabecMsg(cabec);
XMLStreamReader dad = null;
try {
dad = XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(dadosXml));
} catch (Exception e) {
e.printStackTrace();
}
SCERecepcaoRFBStub.SceDadosMsg dadosMsg = null;
try {
dadosMsg = SCERecepcaoRFBStub.SceDadosMsg.Factory.parse(dad);
} catch (Exception e) {
e.printStackTrace();
}
SCERecepcaoRFBStub stub;
try {
stub = new SCERecepcaoRFBStub();
retorno = stub.sceRecepcaoDPEC(dadosMsg, cabecMsgE).getExtraElement().toString();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("Cheguei no retorno");
return retorno;
}
ficow assim! Recaptulando, gere suas classe usando Axis 2 e a ferramenta do eclipse. E use essa minha implementação ai em cima! Qualquer coisa tamo ai!
This message was edited 1 time. Last update was at 19/11/2010 13:56:06
|
Desenvolvedor Java Mobile + Web
Android Developer too!
Só o Heavy Metal Salva!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/11/2010 14:07:19
|
vanderlsilva
Smalltalk
Membro desde: 19/11/2010 10:26:44
Mensagens: 2
Offline
|
alves.Felipe
Não consegui fazer pelo axis2 porque não sei como fazer
estou usando a classe que possoal citou
segue... da olhada
import java.net.MalformedURLException;
import java.net.URL;
import java.security.Security;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPConstants;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
public class Soap {
public static Node transmitir(URL endpoint, Document cabecDoc, Document dadosDoc, String soapAction) throws Exception {
Node elemento = null;
Node adotado = null;
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", "D:\\Nfe\\certificado.pfx");
System.setProperty("javax.net.ssl.keyStorePassword", "senha");
SOAPMessage reqSoap = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL).createMessage();
reqSoap.getSOAPPart().setXmlStandalone(true);
reqSoap.getMimeHeaders().addHeader("SOAPAction", soapAction);
elemento = cabecDoc.getDocumentElement();
adotado = reqSoap.getSOAPPart().adoptNode(elemento);
reqSoap.getSOAPHeader().appendChild(adotado);
elemento = dadosDoc.getDocumentElement();
adotado = reqSoap.getSOAPPart().adoptNode(elemento);
reqSoap.getSOAPBody().appendChild(adotado);
SOAPConnectionFactory cnnFactory = SOAPConnectionFactory.newInstance();
SOAPConnection cnn = cnnFactory.createConnection();
SOAPMessage respSoap = cnn.call(reqSoap, endpoint);
Node nodo = respSoap.getSOAPBody().getChildNodes().item(0);
return nodo;
}
public static void main(String[] args) {
URL endpoint2 = null;
try {
endpoint2 = new URL("https://homologacao.nfe.ms.gov.br/homologacao/services2/NfeStatusServico2");
} catch (MalformedURLException ex) {
Logger.getLogger(Soap.class.getName()).log(Level.SEVERE, null, ex);
}
Document Doc = null;
Document Doc2 = null;
try {
Doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
Doc2 = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
} catch (ParserConfigurationException ex) {
Logger.getLogger(Soap.class.getName()).log(Level.SEVERE, null, ex);
}
// Doc
Element nfeCabecMsg = Doc.createElement("nfeCabecMsg");
nfeCabecMsg.setAttribute("xmlns", "http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2");
Element versaoDados = Doc.createElement("versaoDados");
versaoDados.setTextContent("2.00");
nfeCabecMsg.appendChild(versaoDados);
Element cUF = Doc.createElement("cUF");
cUF.setTextContent("51");
nfeCabecMsg.appendChild(cUF);
Doc.appendChild(nfeCabecMsg);
Element nfeDadosMsg = Doc2.createElement("nfeDadosMsg");
nfeCabecMsg.setAttribute("xmlns", "http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2");
Element consStatServ = Doc2.createElement("consStatServ");
consStatServ.setAttribute("xmlns", "http://www.portalfiscal.inf.br/nfe");
consStatServ.setAttribute("versao", "2.00");
Element tpAmb = Doc2.createElement("tpAmb");
tpAmb.setTextContent("2");
consStatServ.appendChild(tpAmb);
Element cUF2 = Doc2.createElement("cUF");
cUF2.setTextContent("2");
consStatServ.appendChild(cUF2);
Element xServ = Doc2.createElement("xServ");
xServ.setTextContent("STATUS");
consStatServ.appendChild(xServ);
nfeDadosMsg.appendChild(consStatServ);
Doc2.appendChild(nfeDadosMsg);
String soapAction2 = "http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2/nfeStatusServicoNF2";
try {
JOptionPane.showMessageDialog(null, transmitir(endpoint2, Doc, Doc2, soapAction2).toString());
} catch (Exception ex) {
Logger.getLogger(Soap.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Mas da sempre o erro que falei acima...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/11/2010 14:27:07
|
alves.Felipe
GUJ Ranger
![[Avatar]](/images/avatar/1d225d267a78f71ea5abb2364f4e91c4.jpg)
Membro desde: 21/01/2008 13:45:56
Mensagens: 766
Localização: Curitiba - Pr
Offline
|
as classes tem que ser iguais ao que o starkiller postou..
da uma olhada ai para configurar o Axis 2 no eclipse..
http://www.eclipse.org/webtools/community/tutorials/BottomUpAxis2WebService/bu_tutorial.html
|
Felipe Alves |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/11/2010 23:00:00
|
starkiller
JavaTeenager
Membro desde: 17/09/2010 17:39:19
Mensagens: 170
Localização: Manaus - Am
Offline
|
Cara o que ta faltando no teu codigo é essa propriedade na parte de segurança SSL:
System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true");
O que ocorre é que a sun colocou esse entrave depois da versão 1.6.2.
Coloca isso ae que vai funcionar!
|
Desenvolvedor Java Mobile + Web
Android Developer too!
Só o Heavy Metal Salva!
|
|
|
 |
|
|