javax.xml.soap.SOAPException: org.apache.axis2.AxisFault: Mapping qname not fond for the package: org.apache.axis2.saaj -----------------------------------------------------------------------------------------------------------------------
Key: AXIS2-4342 URL: https://issues.apache.org/jira/browse/AXIS2-4342 Project: Axis 2.0 (Axis2) Issue Type: Test Components: saaj Affects Versions: 1.4.1 Environment: Ubuntu 8.10 (Linux Kernel: 2.6.27-11-generic), jdk1.6.0_10, axis2-1.4.1, apache-tomcat-6.0.16 Reporter: dinoo Hi! I do not know if here is the good place to post this message. Please, I need help I'm making a JAX-WS Web Service. The service must return a .ZIP file. I thus use the SAAJ API. I deployed the service using Eclipse Plugin Axis2 Code Service Archiver, and stored it in axis2's repository in /CATALINA_HOME/webapps/axis2/WEB-INF/services HERE IS THE SERVICE'S CODE: /** * */ package dialogue; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import javax.activation.DataHandler; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; import javax.swing.JOptionPane; import javax.xml.namespace.QName; import javax.xml.soap.AttachmentPart; import javax.xml.soap.MessageFactory; import javax.xml.soap.SOAPBody; import javax.xml.soap.SOAPBodyElement; import javax.xml.soap.SOAPConstants; import javax.xml.soap.SOAPElement; import javax.xml.soap.SOAPEnvelope; import javax.xml.soap.SOAPException; import javax.xml.soap.SOAPHeader; import javax.xml.soap.SOAPMessage; import javax.xml.soap.SOAPPart; /** * @author root * @since Mercredi 06 Mai 2009 11:27 * @version 1.0 */ @WebService public class FileService { private String fileName = null; private MessageFactory messageFactory = null; private SOAPMessage message = null; private SOAPPart part = null; private SOAPEnvelope envelope = null; private SOAPHeader header = null; private SOAPBody body = null; private QName name = null; private SOAPBodyElement soapBodyElement = null; private QName nameContenu = null; private SOAPElement soapElement = null; private AttachmentPart attachmentPart = null; private Collection<String> collection = null; public FileService() { } /** * @param filesToGet * @return */ @WebMethod public SOAPMessage recupererFile(@WebParam(name="filesToGet") String fileToGet){ dialFiles = new DialFiles(); dialFiles.setFileToGet(fileToGet); try { fileName = dialFiles.returnRequestedFileName(); } catch (Exception e1) { e1.printStackTrace(); //send SOAPFault } try { messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL); message = messageFactory.createMessage(); part = message.getSOAPPart(); envelope = part.getEnvelope(); header = envelope.getHeader(); header.detachNode(); body = envelope.getBody(); name = new QName("http://dialogue","Thanx", "rm"); soapBodyElement = body.addBodyElement(name); nameContenu = new QName("speech"); soapElement = soapBodyElement.addChildElement(nameContenu); soapElement.addTextNode("Thank u!"); URL url = new URL("file:////temp/"+fileName); DataHandler dataHandler = new DataHandler(url); attachmentPart = message.createAttachmentPart(dataHandler); attachmentPart.setContentId("attached_file"); message.addAttachmentPart(attachmentPart); } catch (SOAPException e) { e.printStackTrace(); //send SOAPFault }catch (MalformedURLException e) { e.printStackTrace(); //send SOAPFault } return message; } } HERE IS THE CLIENT'S CODE: package client; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.util.Iterator; import javax.xml.namespace.QName; import javax.xml.soap.AttachmentPart; import javax.xml.soap.MessageFactory; import javax.xml.soap.SOAPBody; import javax.xml.soap.SOAPBodyElement; import javax.xml.soap.SOAPConnection; import javax.xml.soap.SOAPConnectionFactory; import javax.xml.soap.SOAPElement; import javax.xml.soap.SOAPException; import javax.xml.soap.SOAPFault; import javax.xml.soap.SOAPHeader; import javax.xml.soap.SOAPMessage; /** * @author root * @since Vendredi 08 Mai 2009 23:08 * @version 1.0 */ public class ClasseCliente { private SOAPConnectionFactory soapConnectionFactory = null; private SOAPConnection soapConnection = null; private MessageFactory messageFactory = null; private SOAPMessage soapMessage = null; private SOAPHeader soapHeader = null; private SOAPBody soapBody = null; private QName bodyName = null; private SOAPBodyElement soapBodyElement = null; private QName name = null; private SOAPElement soapElement = null; private URL endpointUrl = null; private SOAPMessage reponse = null; private AttachmentPart attachmentPartReponse = null; private SOAPBody soapBodyreponse = null; private Iterator<SOAPBodyElement> iterator = null; private SOAPBodyElement soapBodyElementReponse = null; private String contenuReponse = null; private Iterator<AttachmentPart> iterator2 = null; public void recupererFile(){ try { soapConnectionFactory = SOAPConnectionFactory.newInstance(); soapConnection = soapConnectionFactory.createConnection(); messageFactory = MessageFactory.newInstance(); soapMessage = messageFactory.createMessage(); soapHeader = soapMessage.getSOAPHeader(); soapHeader.detachNode(); soapBody = soapMessage.getSOAPBody(); bodyName = new QName("http://dialogue", "recupererFile", "rm"); soapBodyElement = soapBody.addBodyElement(bodyName); name = new QName("FileName"); soapElement = soapBodyElement.addChildElement(name); soapElement.addTextNode("MyFile-1.1"); try { endpointUrl = new URL("http://localhost:8080/axis2/services/ServiceEntrepotService"); } catch (MalformedURLException e) { e.printStackTrace(); } soapMessage = soapConnection.call(soapMessage, endpointUrl); soapConnection.close(); soapBody = soapMessage.getSOAPBody(); if(soapBody.hasFault()){ System.out.println("There's a fault!"); SOAPFault faute = soapBody.getFault(); QName code = faute.getFaultCodeAsQName(); String stringFaute = faute.getFaultString(); String actor = faute.getFaultActor(); System.out.println("Fault content:"); System.out.println("Code: "+code.toString()); System.out.println("Local name: "+code.getLocalPart()); System.out.println("Namespace Prefix= "+code.getPrefix()+", bound to "+code.getNamespaceURI()); System.out.println("Fault String: "+stringFaute); if(actor!=null){ System.out.println("Actor: "+actor); } } iterator = soapBody.getChildElements(); while(iterator.hasNext()){ System.out.println("Message:"); soapBodyElement = iterator.next(); System.out.println(soapBodyElement.getNodeName()); contenuReponse = soapBodyElement.getValue(); System.out.println("The message is: "+contenuReponse); } iterator2 = soapMessage.getAttachments(); while(iterator2.hasNext()){ attachmentPartReponse = iterator2.next(); String id = attachmentPartReponse.getContentId(); System.out.println("Attachment's Content ID: "+id); String type = attachmentPartReponse.getContentType(); System.out.println("Attachment's Content Type: "+type); InputStream theFileRequested = (InputStream)attachmentPartReponse.getContent(); Integer nb =null; try { nb = theFileRequested.available(); } catch (IOException e1) { e1.printStackTrace(); } byte[] b = null ; try { FileOutputStream fileOutputStream = new FileOutputStream("/root"); fileOutputStream.write(theFileRequested.read(b, 0, nb)); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } catch (UnsupportedOperationException e) { e.printStackTrace(); } catch (SOAPException e) { e.printStackTrace(); } } public static void main(String[] args) { ClasseCliente classeCliente = new ClasseCliente(); classeCliente.recupererFile(); } } I GET THIS EXCEPTION when I execute The client: javax.xml.soap.SOAPException: org.apache.axis2.AxisFault: Mapping qname not fond for the package: org.apache.axis2.saaj at org.apache.axis2.saaj.SOAPConnectionImpl.handleSOAPMessage(SOAPConnectionImpl.java:194) at org.apache.axis2.saaj.SOAPConnectionImpl.call(SOAPConnectionImpl.java:130) at client.ClasseCliente.recupererFile(ClasseCliente.java:77) at client.ClasseCliente.main(ClasseCliente.java:145) Caused by: org.apache.axis2.AxisFault: org.apache.axis2.AxisFault: Mapping qname not fond for the package: org.apache.axis2.saaj at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:512) at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:370) at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416) at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228) at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163) at org.apache.axis2.saaj.SOAPConnectionImpl.handleSOAPMessage(SOAPConnectionImpl.java:188) ... 3 more Whitch qname is missing? where to find it? -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.