You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Emil Dombagolla <do...@gmail.com> on 2011/04/07 14:37:33 UTC

When WSDL location not the endpoint ,

Dear all,


Please help me on this.


I am getting following error  when I try to connect to PayPal web service
with my wsdl2java generated client codes.


*=================================================*


*INFO: Creating Service {urn:ebay:api:PayPalAPI}PayPalAPIInterfaceService
from WSDL: https://www.paypalobjects.com/wsdl/PayPalSvc.wsdl
Exception in thread "main" javax.xml.ws.WebServiceException:
org.apache.cxf.service.factory.ServiceConstructionException
    at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:333)
    at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:318)
    at javax.xml.ws.Service.getPort(Unknown Source)
    at
com.webservice.paypal.PayPalAPIInterfaceService.getPayPalAPIAA(PayPalAPIInterfaceService.java:106)
    at test.main(test.java:97)
Caused by: org.apache.cxf.service.factory.ServiceConstructionException
    at
org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:341)
    at
org.apache.cxf.service.factory.AbstractServiceFactoryBean.initializeDataBindings(AbstractServiceFactoryBean.java:86)
    at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:404)
    at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:503)
    at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:242)
    at
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:202)
    at
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:101)
    at
org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:90)
    at
org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:144)
    at
org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:133)
    at org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:464)
    at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:331)
    ... 4 more
Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts
of IllegalAnnotationExceptions
javax.xml.bind.JAXBElement does not have a no-arg default constructor.
    this problem is related to the following location:
        at javax.xml.bind.JAXBElement
        at protected javax.xml.bind.JAXBElement
com.webservice.paypal.ReverseTransactionResponseDetailsType.reverseTransactionID
        at com.webservice.paypal.ReverseTransactionResponseDetailsType
        at public
com.webservice.paypal.ReverseTransactionResponseDetailsType
com.webservice.paypal.ObjectFactory.createReverseTransactionResponseDetailsType()
        at com.webservice.paypal.ObjectFactory
        at protected java.lang.Object
com.webservice.paypal.AbstractRequestType.any
        at com.webservice.paypal.AbstractRequestType
        at
com.webservice.paypal.GetBillingAgreementCustomerDetailsRequestType
        at protected
com.webservice.paypal.GetBillingAgreementCustomerDetailsRequestType
com.webservice.paypal.GetBillingAgreementCustomerDetailsReq.getBillingAgreementCustomerDetailsRequest
        at com.webservice.paypal.GetBillingAgreementCustomerDetailsReq
*



==========================================



I got the wsdl file for Pay Pal  form the following location,

https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl


 <https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl>

And I used this url to generate my client as follows.

*Wsdl2java –p com.test  https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl*


<https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl>

In my generated service stub also using the WSDL location for the service as
following. but the real endpoint should be  ,
https://api-aa.sandbox.paypal.com/2.0/,


<https://api-aa.sandbox.paypal.com/2.0/>

*@WebServiceClient(name = "PayPalAPIInterfaceService",
                  wsdlLocation = "
https://www.paypalobjects.com/wsdl/PayPalSvc.wsdl",
                  targetNamespace = "urn:ebay:api:PayPalAPI")
public class PayPalAPIInterfaceService extends Service {

    public final static URL WSDL_LOCATION;

    public final static QName SERVICE = new QName("urn:ebay:api:PayPalAPI",
"PayPalAPIInterfaceService");
    public final static QName PayPalAPI = new
QName("urn:ebay:api:PayPalAPI", "PayPalAPI");
    public final static QName PayPalAPIAA = new
QName("urn:ebay:api:PayPalAPI", "PayPalAPIAA");
    static {
        URL url = null;
        try {
            url = new URL("https://www.paypalobjects.com/wsdl/PayPalSvc.wsdl
");
        } catch (MalformedURLException e) {
            System.err.println("Can not initialize the default wsdl from
https://www.paypalobjects.com/wsdl/PayPalSvc.wsdl");
            // e.printStackTrace();
        }
        WSDL_LOCATION = url;
    }*


*
*

This is may be why I get this error, please someone help me how to configure
this endpoint. Even if I changed in the code it didn’t work. How to
configure this endpoint other than the WSDL location?


Thank you so much.

Emil

Re: When WSDL location not the endpoint ,

Posted by Daniel Kulp <dk...@apache.org>.
Honestly, no idea.   I just did:

./wsdl2java  -all -d /tmp/t2 -p com.test   
        https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl
cd /tmp/t2
ant PayPalAPIInterfaceClient

and the client started up fine and contacts the PayPal service.  (it got an 
expected fault back due to not really loging in or anything.)


What version of CXF?  JAXB?

Dan



On Thursday 07 April 2011 8:37:33 AM Emil Dombagolla wrote:
> Dear all,
> 
> 
> Please help me on this.
> 
> 
> I am getting following error  when I try to connect to PayPal web service
> with my wsdl2java generated client codes.
> 
> 
> *=================================================*
> 
> 
> *INFO: Creating Service {urn:ebay:api:PayPalAPI}PayPalAPIInterfaceService
> from WSDL: https://www.paypalobjects.com/wsdl/PayPalSvc.wsdl
> Exception in thread "main" javax.xml.ws.WebServiceException:
> org.apache.cxf.service.factory.ServiceConstructionException
>     at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:333)
>     at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:318)
>     at javax.xml.ws.Service.getPort(Unknown Source)
>     at
> com.webservice.paypal.PayPalAPIInterfaceService.getPayPalAPIAA(PayPalAPIInt
> erfaceService.java:106) at test.main(test.java:97)
> Caused by: org.apache.cxf.service.factory.ServiceConstructionException
>     at
> org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:341)
>     at
> org.apache.cxf.service.factory.AbstractServiceFactoryBean.initializeDataBin
> dings(AbstractServiceFactoryBean.java:86) at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFro
> mWSDL(ReflectionServiceFactoryBean.java:404) at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServi
> ceModel(ReflectionServiceFactoryBean.java:503) at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(Reflecti
> onServiceFactoryBean.java:242) at
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFac
> toryBean.java:202) at
> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(Abs
> tractWSDLBasedEndpointFactory.java:101) at
> org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:90)
>     at
> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBea
> n.java:144) at
> org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.jav
> a:133) at org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:464)
> at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:331) ... 4
> more
> Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1
> counts of IllegalAnnotationExceptions
> javax.xml.bind.JAXBElement does not have a no-arg default constructor.
>     this problem is related to the following location:
>         at javax.xml.bind.JAXBElement
>         at protected javax.xml.bind.JAXBElement
> com.webservice.paypal.ReverseTransactionResponseDetailsType.reverseTransact
> ionID at com.webservice.paypal.ReverseTransactionResponseDetailsType at
> public
> com.webservice.paypal.ReverseTransactionResponseDetailsType
> com.webservice.paypal.ObjectFactory.createReverseTransactionResponseDetails
> Type() at com.webservice.paypal.ObjectFactory
>         at protected java.lang.Object
> com.webservice.paypal.AbstractRequestType.any
>         at com.webservice.paypal.AbstractRequestType
>         at
> com.webservice.paypal.GetBillingAgreementCustomerDetailsRequestType
>         at protected
> com.webservice.paypal.GetBillingAgreementCustomerDetailsRequestType
> com.webservice.paypal.GetBillingAgreementCustomerDetailsReq.getBillingAgree
> mentCustomerDetailsRequest at
> com.webservice.paypal.GetBillingAgreementCustomerDetailsReq *
> 
> 
> 
> ==========================================
> 
> 
> 
> I got the wsdl file for Pay Pal  form the following location,
> 
> https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl
> 
> 
>  <https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl>
> 
> And I used this url to generate my client as follows.
> 
> *Wsdl2java –p com.test  https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl*
> 
> 
> <https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl>
> 
> In my generated service stub also using the WSDL location for the service
> as following. but the real endpoint should be  ,
> https://api-aa.sandbox.paypal.com/2.0/,
> 
> 
> <https://api-aa.sandbox.paypal.com/2.0/>
> 
> *@WebServiceClient(name = "PayPalAPIInterfaceService",
>                   wsdlLocation = "
> https://www.paypalobjects.com/wsdl/PayPalSvc.wsdl",
>                   targetNamespace = "urn:ebay:api:PayPalAPI")
> public class PayPalAPIInterfaceService extends Service {
> 
>     public final static URL WSDL_LOCATION;
> 
>     public final static QName SERVICE = new QName("urn:ebay:api:PayPalAPI",
> "PayPalAPIInterfaceService");
>     public final static QName PayPalAPI = new
> QName("urn:ebay:api:PayPalAPI", "PayPalAPI");
>     public final static QName PayPalAPIAA = new
> QName("urn:ebay:api:PayPalAPI", "PayPalAPIAA");
>     static {
>         URL url = null;
>         try {
>             url = new
> URL("https://www.paypalobjects.com/wsdl/PayPalSvc.wsdl ");
>         } catch (MalformedURLException e) {
>             System.err.println("Can not initialize the default wsdl from
> https://www.paypalobjects.com/wsdl/PayPalSvc.wsdl");
>             // e.printStackTrace();
>         }
>         WSDL_LOCATION = url;
>     }*
> 
> 
> *
> *
> 
> This is may be why I get this error, please someone help me how to
> configure this endpoint. Even if I changed in the code it didn’t work. How
> to configure this endpoint other than the WSDL location?
> 
> 
> Thank you so much.
> 
> Emil

-- 
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog
Talend - http://www.talend.com