You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by angeloimm <an...@libero.it> on 2005/03/31 23:58:02 UTC

Please Help Me! java.lang.IllegalArgumentException: localPart cannot be null

Hi all. I'm using Axis RC1.2 under JBoss 3.2.6, JDK 1.4.2_07 and Windows XP Home edition.
Well... i have this simple client:

package it.eng.test.client.util;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.SOAPBodyElement;
import org.apache.axis.utils.XMLUtils;
import javax.xml.rpc.ServiceException;

import java.util.Vector;
import org.w3c.dom.Document;
import javax.xml.namespace.QName;

import org.apache.log4j.Logger;
import java.net.URL;
import java.net.MalformedURLException;


/**
 * <p>Title: Prototipo Piattaforma PMM piattaforma per la gestione di Web
 * Services</p>
 *
 * <p>Description: Prototipo semplice per la costruzione della piattaforma PMM
 * utilizzata per interagire con dei web services.</p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: Engineering Ingegneria Informatica</p>
 *
 * @author Angelo Immediata
 * @version 1.0
 */
public class SimpleAxisClient {

    /**
     * Il logger
     */
    private static final Logger LOG = Logger.getLogger(SimpleAxisClient.class.
            getName());

    /**
     * Preparo il l'oggetto Call da utilizzare
     * @param endpoint String -l'endpoint da utilizzare
     * @param operation String -l'operazione da invocare
     * @return Call -il Call generato.
     * @throws ServiceException -Se ci sono problemi col servizio
     */
    private Call getCall(String endpoint, String operation) throws
            ServiceException {

        if (LOG.isDebugEnabled()) {

            LOG.debug("Creating call.....");
        }
        Call result = (Call)(new Service()).createCall();
        try {
            result.setTargetEndpointAddress(new URL(endpoint));
        } catch (MalformedURLException ex) {

            LOG.error( ex );
        }

        result.setOperation( new QName( endpoint, operation ), operation );
        if (LOG.isDebugEnabled()) {

            LOG.debug("Done!!");
        }
        return result;
    }

    /**
     * Invoco il web service passandogli il Document generato dalla classe it.eng.prototype.xml.Parser
     * @param doc Document -il Document generato.
     * @param endpoint String -l'endpoint del servizio.
     * @param operation String -l'operazione da invocare.
     * @return Document -il document in uscita al webService
     * @throws Exception
     */
    public Document getDocument(Document doc, String endpoint,
                                          String operation) throws Exception {
        Call call = getCall(endpoint, operation);
        Vector result = (Vector) call.invoke
                        (new SOAPBodyElement[] {new SOAPBodyElement(doc.
                getDocumentElement())});
        SOAPBodyElement sbe = (SOAPBodyElement) result.get(0);
        if( LOG.isDebugEnabled() ){

            LOG.debug("Body ricevuto: " +
                      XMLUtils.DocumentToString(sbe.getAsDocument()));
        }
        return sbe.getAsDocument();
    }
}

When i try to invoke the web service by using Axis in this way:

        try {
            Document doc = client.getDocument(createDocument( data ),
                    "http://localhost:8082/ServicePublisher/services/Searcher",
                                              "byFiscalCode");
            if( LOG.isDebugEnabled() ){

                LOG.debug( "Ho ottenuto questo Document in risposta: " );
                LOG.debug(XMLUtil.domToString(doc));
            }
        } catch (Exception ex) {

            ex.printStackTrace();
            LOG.error( ex );
        }

I have this error that is driving me to become crazy:
2005-03-31 23:47:53,698 DEBUG [it.eng.test.client.util.SimpleAxisClient] Creating call.....
2005-03-31 23:47:53,778 DEBUG [it.eng.test.client.util.SimpleAxisClient] Done!!
2005-03-31 23:47:53,828 INFO  [STDOUT] java.lang.IllegalArgumentException: localPart cannot be null
2005-03-31 23:47:53,828 INFO  [STDOUT] 	at javax.xml.namespace.QName.<init>(QName.java:106)
2005-03-31 23:47:53,828 INFO  [STDOUT] 	at javax.xml.namespace.QName.<init>(QName.java:81)
2005-03-31 23:47:53,828 INFO  [STDOUT] 	at org.apache.axis.message.PrefixedQName.<init>(PrefixedQName.java:30)
2005-03-31 23:47:53,828 INFO  [STDOUT] 	at org.apache.axis.message.MessageElement.copyNode(MessageElement.java:2045)
2005-03-31 23:47:53,828 INFO  [STDOUT] 	at org.apache.axis.message.MessageElement.copyNode(MessageElement.java:1997)
2005-03-31 23:47:53,848 INFO  [STDOUT] 	at org.apache.axis.message.MessageElement.<init>(MessageElement.java:197)
2005-03-31 23:47:53,848 INFO  [STDOUT] 	at org.apache.axis.message.SOAPBodyElement.<init>(SOAPBodyElement.java:70)
2005-03-31 23:47:53,848 INFO  [STDOUT] 	at it.eng.test.client.util.SimpleAxisClient.getDocument(SimpleAxisClient.java:81)
2005-03-31 23:47:53,848 INFO  [STDOUT] 	at it.eng.test.client.Dispatcher.doPost(Dispatcher.java:46)
2005-03-31 23:47:53,848 INFO  [STDOUT] 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
2005-03-31 23:47:53,848 INFO  [STDOUT] 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
2005-03-31 23:47:53,848 INFO  [STDOUT] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
2005-03-31 23:47:53,848 INFO  [STDOUT] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
2005-03-31 23:47:53,848 INFO  [STDOUT] 	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
2005-03-31 23:47:53,848 INFO  [STDOUT] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
2005-03-31 23:47:53,848 INFO  [STDOUT] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
2005-03-31 23:47:53,858 INFO  [STDOUT] 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
2005-03-31 23:47:53,858 INFO  [STDOUT] 	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
2005-03-31 23:47:53,858 INFO  [STDOUT] 	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
2005-03-31 23:47:53,858 INFO  [STDOUT] 	at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
2005-03-31 23:47:53,858 INFO  [STDOUT] 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
2005-03-31 23:47:53,858 INFO  [STDOUT] 	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
2005-03-31 23:47:53,858 INFO  [STDOUT] 	at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)
2005-03-31 23:47:53,858 INFO  [STDOUT] 	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
2005-03-31 23:47:53,858 INFO  [STDOUT] 	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:158)
2005-03-31 23:47:53,858 INFO  [STDOUT] 	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
2005-03-31 23:47:53,939 INFO  [STDOUT] 	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
2005-03-31 23:47:53,939 INFO  [STDOUT] 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
2005-03-31 23:47:53,939 INFO  [STDOUT] 	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
2005-03-31 23:47:53,949 INFO  [STDOUT] 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
2005-03-31 23:47:53,949 INFO  [STDOUT] 	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
2005-03-31 23:47:53,959 INFO  [STDOUT] 	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
2005-03-31 23:47:53,959 INFO  [STDOUT] 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
2005-03-31 23:47:53,959 INFO  [STDOUT] 	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
2005-03-31 23:47:53,959 INFO  [STDOUT] 	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
2005-03-31 23:47:53,959 INFO  [STDOUT] 	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
2005-03-31 23:47:53,969 INFO  [STDOUT] 	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
2005-03-31 23:47:53,969 INFO  [STDOUT] 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
2005-03-31 23:47:53,969 INFO  [STDOUT] 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
2005-03-31 23:47:53,969 INFO  [STDOUT] 	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
2005-03-31 23:47:53,969 INFO  [STDOUT] 	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
2005-03-31 23:47:53,989 INFO  [STDOUT] 	at java.lang.Thread.run(Thread.java:534)

Well the document i pass to the call is this one:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ricercaIndividuo>
    <codiceFiscale>mmdngl74c22h703k</codiceFiscale>
</ricercaIndividuo>

I have created it from a XSD by using JAXB...... it seems to me that this file is well formed and is a valid XML file.... why have i that error?
Thanks to all...



____________________________________________________________
6X velocizzare la tua navigazione a 56k? 6X Web Accelerator di Libero!
Scaricalo su INTERNET GRATIS 6X http://www.libero.it