2009-04-30 3 views
1

De même à un older post je suis en train d'accéder à un service Web avec JAX-WS en utilisant:erreur de transformation: "L'événement actuel ne start_element mais 2"

Dispatch<Source> sourceDispatch = null; 
sourceDispatch = service.createDispatch(portQName, Source.class, Service.Mode.PAYLOAD); 
Source result = sourceDispatch.invoke(new StreamSource(new StringReader(req))); 
System.out.println(sourceToXML(result)); 

où:

private static String sourceToXML(Source result) { 
    Node rootNode= null; 
    try { 
     TransformerFactory factory = TransformerFactory.newInstance(); 
     Transformer transformer = factory.newTransformer(); 
     DOMResult domResult = new DOMResult(); 
     transformer.transform(result, domResult); 
     rootNode = (Node) domResult.getNode(); 
    } catch (TransformerException e) { 
     e.getMessage(); 
    } 

    return rootNode.getFirstChild().getNodeValue(); 
} 

mais je obtenir l'erreur « l'événement actuel ne start_element nulle mais 2 » (je pense que sur le transformateur)

Qu'est-ce que je fais mal :(

Répondre

0

Probablement à partir de l'analyseur. Je dirais qu'une trace de pile serait utile, mais Xerces/Xalan a tendance à les visser.

Démarches nécessaires à prendre:

  • Essayez de regarder le résultat comme une chaîne.
  • Essayez d'analyser avec un analyseur, en ignorant le transformateur pour le moment.
  • Essayez de trouver exactement ce que l'erreur était.
+0

La trace de pile: http://collabedit.com/display?id=44647 –

0

Vous devez modifier votre déclaration

e.getMessage() 

réellement imprimer le message d'erreur :-) Cela devrait aider.

System.err.println(e.getMessage()); 

ou de préférence

e.printStackTrace(); 
+0

Ou mieux lancer une nouvelle erreur (HT); –

+0

La trace de la pile: http://collabedit.com/display?id=44647 –

Questions connexes