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.

Reply via email to