Hello,

sorry for not using the convention.

Here's the JIRA issue:

http://issues.apache.org/jira/browse/AXIS2-616

Thank you ver much,

Siamak Haschemi


Davanum Srinivas schrieb:
Siamak,

*PLEASE* log a jira bug report and then upload the files

thanks,
dims

On 4/25/06, Siamak Haschemi <[EMAIL PROTECTED]> wrote:
Hello Robert,

I'm going crazy with Axis2 and Failures...

I attached
- a simplified WSDL file which seems to be valid (validated with the
WSDL Validator of the Eclipse WTP Project).
- the services.xml
- My serverside Skeleton
- My simple Client
- The xml-request
- The xml-response
- The Exception

Thank you for your help,

Siamak Haschemi

--

<?xml version="1.0" encoding="http://schemas.xmlsoap.org/soap/envelope/";?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
<soapenv:Header/>
<soapenv:Body>
<getProductRequest
xmlns="http://www.haschemi.org/fault/";>Test</getProductRequest>
</soapenv:Body>
</soapenv:Envelope>

--

<?xml version="1.0" encoding="http://schemas.xmlsoap.org/soap/envelope/";?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
<soapenv:Header/>
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Client</faultcode>
<faultstring>GetProductFaultException</faultstring>
<detail>
<getProductFault xmlns="http://www.haschemi.org/fault/";>Dicker
Fehler!</getProductFault>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>

--

Exception in thread "main" java.lang.RuntimeException: Data binding error
    at org.apache.axis2.FaultStub.fromOM(FaultStub.java:407)
    at org.apache.axis2.FaultStub.getProduct(FaultStub.java:174)
    at Client.main(Client.java:16)
Caused by: java.lang.NullPointerException
    at
org.apache.xmlbeans.impl.store.Cur$CurLoadContext.finish(Cur.java:3184)
    at
org.apache.xmlbeans.impl.store.Locale.loadXMLStreamReader(Locale.java:1216)
    at
org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:843)
    at
org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:826)
    at
org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:231)
    at
org.haschemi.www.fault.GetProductFaultDocument$Factory.parse(GetProductFaultDocument.java:88)
    at org.apache.axis2.FaultStub.fromOM(FaultStub.java:403)
    ... 2 more

robert lazarski schrieb:
Try validating your wsdl file - I'm seeing some warning about missing types
around getAllProductRequest .

HTH,
Robert
http://www.braziloutsource.com/

On 4/24/06, Siamak Haschemi <[EMAIL PROTECTED]> wrote:

Hello to all.

I posted this failure in the user-list but nobody responses, so I'll try
to reach the developers because it seems like a bug.

I generated with the attached WSDL file the serverside and the
clientside code.

The reqiest from the Client is:

<?xml version="1.0" encoding="http://schemas.xmlsoap.org/soap/envelope/";?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/
">
<soapenv:Header/>
<soapenv:Body>
<saveProductRequest xmlns="http://haschemi.org/shop/common";>
<product amount="11.0" amountUnit="kg" calorificValue="15000"
dateOfExpiry="2006-04-24+02:00" description="Tolles Brot mit tollen
Eigenschaften...." fromTemperatureRange="-15.0" name="Hagen Brot"
toTemperatureRange="30.0"/>
</saveProductRequest>
</soapenv:Body>
</soapenv:Envelope>

In the Server Skeleton I throw a Exception:

public SaveProductResponseDocument
saveProduct(SaveProductRequestDocument param1) OperationException {
  final OperationException exception = new OperationException();
  final ExceptionMessageDocument exceptionMessageDocument =
ExceptionMessageDocument.Factory.newInstance();
  final ExceptionMessage exceptionMessage =
exceptionMessageDocument.addNewExceptionMessage();
  final LocalizedMessage localizedMessage =
exceptionMessage.addNewLocalizedMessage();
  localizedMessage.setLanguage(LocalizedMessage.Language.DE_DE);
  localizedMessage.setMessage("Fehlerbescrhreibung");
  exception.setFaultMessage(exceptionMessageDocument);
  throw exception;
}


And the response is:

<?xml version="1.0" encoding="http://schemas.xmlsoap.org/soap/envelope/";?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/
">
<soapenv:Header/>
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Client</faultcode>
<faultstring>OperationException</faultstring>
<detail>
<exceptionMessage xmlns="http://haschemi.org/shop/common";>
<localizedMessage language="de_DE" message="Fehlerbescrhreibung"/>
</exceptionMessage>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>


The client receives the response and throws:

org.apache.axiom.om.OMException: java.lang.NullPointerException
    at
org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java
:207)
    at
org.apache.axiom.om.impl.llom.OMElementImpl.getNextOMSibling(
OMElementImpl.java:263)
    at
org.apache.axiom.om.impl.traverse.OMChildrenIterator.next(
OMChildrenIterator.java:111)
    at
org.apache.axiom.soap.impl.llom.SOAPFaultImpl.getChildWithName(
SOAPFaultImpl.java:187)
    at
org.apache.axiom.soap.impl.llom.SOAPFaultImpl.getNode(SOAPFaultImpl.java
:119)
    at
org.apache.axis2.description.OutInAxisOperationClient.execute(
OutInAxisOperation.java:286)
    at org.apache.axis2.CareStub.saveProduct(CareStub.java:277)
    at Client.main(Client.java:53)
Caused by: java.lang.NullPointerException
    at
org.apache.axiom.soap.impl.builder.SOAPBuilderHelper.processAttributes(
SOAPBuilderHelper.java:90)
    at
org.apache.axiom.soap.impl.builder.SOAP11BuilderHelper.handleEvent(
SOAP11BuilderHelper.java:146)
    at
org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.constructNode(
StAXSOAPModelBuilder.java:310)
    at
org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createOMElement(
StAXSOAPModelBuilder.java:177)
    at
org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java
:133)
    ... 7 more


So, did I something wrong?
Is there a miskate in the WSDL-file?

Thanks for the help


Siamak Haschemi





/**
 * FaultSkeleton.java
 *
 * This file was auto-generated from WSDL
 * by the Apache Axis2 version: SNAPSHOT Apr 24, 2006 (08:15:33 CEST)
 */
package org.apache.axis2;

import org.haschemi.www.fault.GetProductFaultDocument;

/**
 * FaultSkeleton java skeleton for the axisService
 */
public class FaultSkeleton {

        /**
         * Auto generated method signature
         *
         * @param param0
         *
         */
        public org.haschemi.www.fault.GetProductResponseDocument getProduct(
                        org.haschemi.www.fault.GetProductRequestDocument param0)

        throws org.apache.axis2.FaultSkeleton.GetProductFaultException {
                final GetProductFaultException exception = new 
GetProductFaultException();
                final GetProductFaultDocument document = 
GetProductFaultDocument.Factory.newInstance();
                document.setGetProductFault("Dicker Fehler!");

                exception.setFaultMessage(document);

                throw exception;
        }

        public static class GetProductFaultException extends 
java.rmi.RemoteException {

                private org.haschemi.www.fault.GetProductFaultDocument 
faultMessage;

                public void 
setFaultMessage(org.haschemi.www.fault.GetProductFaultDocument msg) {
                        faultMessage = msg;
                }

                public org.haschemi.www.fault.GetProductFaultDocument 
getFaultMessage() {
                        return faultMessage;
                }
        }

}


import org.apache.axis2.FaultStub;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.ConfigurationContextFactory;
import org.haschemi.www.fault.GetProductRequestDocument;

public class Client {
        public static void main(String[] args) throws Exception {
                ConfigurationContext configContext = ConfigurationContextFactory
                                
.createConfigurationContextFromFileSystem("client_repo", null);

                final FaultStub faultStub = new FaultStub(configContext,
                                "http://localhost:1234/axis2/services/fault";);

                final GetProductRequestDocument document = 
GetProductRequestDocument.Factory.newInstance();
                document.setGetProductRequest("Test");
                faultStub.getProduct(document);
        }
}






--
Davanum Srinivas : http://wso2.com/blogs/


Reply via email to