[ 
http://jira.codehaus.org/browse/XFIRE-915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_113306
 ] 

Pawel Baranik commented on XFIRE-915:
-------------------------------------

I've recently installed FUSE ESB and tried to deploy some JSR-181 services with 
Eclipse 3.3 ant got the same exception as here on Linux Ubuntu, even with 
version 1.2.6(same exception but at different line). Please check if this issue 
has been fixed. On Windows Server machine there's no exception.

TIA
Pawel

(Visible to LoggedIn role)

> NullPointerException with code generated from PayPal wsdl
> ---------------------------------------------------------
>
>                 Key: XFIRE-915
>                 URL: http://jira.codehaus.org/browse/XFIRE-915
>             Project: XFire
>          Issue Type: Bug
>          Components: Aegis Module
>    Affects Versions: 1.2.4
>         Environment: Linux/Gentoo, Java 1.6, eclipse 3.2
>            Reporter: Lado Kumsiashvili
>            Assignee: Tomasz Sztelak
>             Fix For: 1.2.6
>
>         Attachments: generated.jar
>
>
> I'd lige to use xFire FW for making PayPal SOAP API calls. So i've generated 
> Java classes from PayPal wsdl and i have wroten a small test class, that uses 
> this classes.
> hier are links to PayPal wsdl and belonging XML Schemas:
> PayPal Schema                tps://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl
> eBL Base Components  https://www.sandbox.paypal.com/wsdl/eBLBaseComponents.xsd
> Component Types            
> https://www.sandbox.paypal.com/wsdl/CoreComponentTypes.xsd
> I use in my client(see code below) some dummy params. They do not really 
> matter. So i must receive some erros(Incorrect params, etc) as replay.
> I have used debugger, and i receive a soap response, but then an 
> NullPointerException occures. So a can not read any errors or transaction 
> details in my programm.
> .....
> The code(I ve generated java classes with eclipse plugin and choose package 
> name jira.xfire. If you choose another package name, please change this name 
> on the test program too.
> package jira.xfire;
> import java.util.List;
> import javax.xml.ws.Holder;
> import xfire.jira.PayPalAPIInterface;
> import xfire.jira.PayPalAPIInterfaceServiceClient;
> import ebay.api.paypalapi.GetTransactionDetailsReq;
> import ebay.api.paypalapi.GetTransactionDetailsRequestType;
> import ebay.api.paypalapi.GetTransactionDetailsResponseType;
> import ebay.apis.eblbasecomponents.CustomSecurityHeaderType;
> import ebay.apis.eblbasecomponents.ErrorType;
> import ebay.apis.eblbasecomponents.UserIdPasswordType;
> /**
>  * @author lado
>  * 
>  */
> public class Main {
>     /**
>          * @param args
>          */
>     public static void main(String[] args) {
>       GetTransactionDetailsRequestType r = new 
> GetTransactionDetailsRequestType();
>       r.setVersion("1.0");
>       r.setTransactionID("87K78012VR671152J");// some dummy value
>       PayPalAPIInterfaceServiceClient cc = new 
> PayPalAPIInterfaceServiceClient();
>       PayPalAPIInterface api = cc.getPayPalAPI();
>       GetTransactionDetailsReq request = new GetTransactionDetailsReq();
>       request.setGetTransactionDetailsRequest(r);
>       CustomSecurityHeaderType requesterCredentials = new 
> CustomSecurityHeaderType();
>       UserIdPasswordType auth = new UserIdPasswordType();
>       auth.setUsername("sdk-seller_api1.sdk.com");// We use some dummy
>                                                         // user and password.
>                                                         // But response must
>                                                         // come
>       auth.setPassword("12345678"); // and contain errors
>       requesterCredentials.setCredentials(auth);
>       Holder<CustomSecurityHeaderType> a2 = new 
> Holder<CustomSecurityHeaderType>();
>       a2.value = requesterCredentials;
>       // call
>       GetTransactionDetailsResponseType response = api.getTransactionDetails(
>               request, requesterCredentials, a2);
>       List<ErrorType> errors = response.getErrors();
>       if (errors != null && errors.size() > 0) {
>           System.out.println("\nERROR");
>           for (ErrorType error : errors) {
>               System.out.println("\nErrorCode: " + error.getErrorCode());
>               System.out.println("\nShortErrorMessage: "
>                       + error.getShortMessage());
>               System.out.println("\nLongErrorMessage: "
>                       + error.getLongMessage());
>           }
>       } else {
>           System.out.println(response.getPaymentTransactionDetails()
>                   .getPayerInfo());// some dummy code
>       }
>     }
> }
> and the Stacktrace:
> Exception in thread "main" org.codehaus.xfire.XFireRuntimeException: Could 
> not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: 
> Fault: java.lang.NullPointerException
> org.codehaus.xfire.fault.XFireFault: Fault: java.lang.NullPointerException
>       at org.codehaus.xfire.fault.XFireFault.createFault(XFireFault.java:89)
>       at org.codehaus.xfire.client.Client.onReceive(Client.java:386)
>       at 
> org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:139)
>       at 
> org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
>       at 
> org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
>       at 
> org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
>       at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:75)
>       at org.codehaus.xfire.client.Client.invoke(Client.java:335)
>       at 
> org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
>       at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
>       at $Proxy13.getTransactionDetails(Unknown Source)
>       at jira.xfire.Main.main(Main.java:48)
> Caused by: java.lang.NullPointerException
>       at 
> org.codehaus.xfire.aegis.AegisBindingProvider.getReadType(AegisBindingProvider.java:186)
>       at 
> org.codehaus.xfire.aegis.type.basic.BeanType.readObject(BeanType.java:152)
>       at 
> org.codehaus.xfire.aegis.AegisBindingProvider.readParameter(AegisBindingProvider.java:162)
>       at 
> org.codehaus.xfire.service.binding.ServiceInvocationHandler.readHeaders(ServiceInvocationHandler.java:181)
>       at 
> org.codehaus.xfire.client.ClientReceiveHandler.invoke(ClientReceiveHandler.java:32)
>       at 
> org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
>       at org.codehaus.xfire.client.Client.onReceive(Client.java:382)
>       ... 10 more
> The problem occures beacuse in the Method  public static Type 
> getReadType(XMLStreamReader xsr, MessageContext context, Type type, 
> TypeMapping tm)
> null as type is passed. an then on the line 186 the code tries to read some 
> member of type(null)
> i've fixed this problem temporary with replaceing line 186 code
>  if (!overrideTypeName.equals(type.getSchemaType())) with  if ( type!= null 
> && !overrideTypeName.equals(type.getSchemaType()))
> but i do not know if this solussion is good.
> P.S.
> I habe also atteched the all the generated code incl. my test Program 
> Main.java
> So long,
> Lado

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to