You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Martin Jozef (JIRA)" <ji...@apache.org> on 2008/07/04 20:23:39 UTC

[jira] Updated: (CXF-1682) Generated Web service Client fails for http://demo.aws.air-worldwide.com/aws/passporttogo.asmx?wsdl

     [ https://issues.apache.org/jira/browse/CXF-1682?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Jozef updated CXF-1682:
------------------------------

    Fix Version/s:     (was: Invalid)
                   2.0.8
                   2.1.2
         Priority: Major  (was: Critical)
      Description: 
Here is the WSDL that CXF cannot handle.
http://demo.aws.air-worldwide.com/aws/passporttogo.asmx?wsdl

If you generate a client with wsdl2java  in both latest releases of CXF you will see that it fails at runtime.
I tested the code against JAXWS-RI client and it works fine.

This is the usecase to test;
    

        
    public void runThis(){
        
        
try { 
   com.air_worldwide.webservices.PassportToGo service = new com.air_worldwide.webservices.PassportToGo();
   com.air_worldwide.webservices.PassportToGoSoap port = service.getPassportToGoSoap();
   	
	java.lang.String xmlReqStg = str;
   
   java.lang.String result = port.getISOData(xmlReqStg);
   System.out.println("Result = "+result);
} catch (Exception ex) {
   // TODO handle custom exceptions here
}

please use this following string for the parameter of the porg.getISOData( ) method

 "<ISORequests><RequestHeader><AIR><LicenseKey>QLAFKIUDJ%7DLWEHAVLFEJN%60%7DWQKJ%60</LicenseKey><LoginID>amkeystone_ws</LoginID><Password>amke9919</Password></AIR><Passport><LoginID>AARPASA#</LoginID>      <Password>ARPASA#</Password>      <ResellerID>33755</ResellerID><OrderAccountNumber>41619</OrderAccountNumber>      <ShipToAccountNumber>41619</ShipToAccountNumber><WebServiceUserID>PIDAIRPASSA</WebServiceUserID>      <WebServicePassword>k!9s!j45</WebServicePassword><UserID>0</UserID></Passport></RequestHeader><ISORequest><Products>DetailPPC</Products><Addresses><Options parse=\"yes\" validateCSZ=\"no\" validateAddress=\"yes\" geocode=\"yes\" returnHighestScore=\"yes\" /><Address><Type>UnparsedRiskAddress</Type><Addr1>Address 1</Addr1><City>City</City><StateProv>State</StateProv><PostalCode>Zip</PostalCode><ZIP4/><ZIPCarrierRoute/></Address></Addresses></ISORequest></ISORequests> "


Using the build.xml script i get the following error

C:\CXF\genClients>ant PassportToGoSoapClient1
Buildfile: build.xml

compile:

PassportToGoSoapClient1:
     [java] Invoking getISOData...
     [java] Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Cou
ld not send Message.
     [java]     at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy
.java:199)
     [java]     at $Proxy39.getISOData(Unknown Source)
     [java]     at com.air_worldwide.webservices.PassportToGoSoap_PassportToGoSo
ap_Client.main(PassportToGoSoap_PassportToGoSoap_Client.java:57)
     [java] Caused by: org.apache.cxf.interceptor.Fault: Could not send Message.

     [java]     at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSe
nderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
     [java]     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseI
nterceptorChain.java:221)
     [java]     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296
)
     [java]     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:242
)
     [java]     at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.ja
va:73)
     [java]     at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy
.java:178)
     [java]     ... 2 more
     [java] Caused by: java.io.IOException: Not Found
     [java]     at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream
.handleResponse(HTTPConduit.java:1929)
     [java]     at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream
.close(HTTPConduit.java:1832)
     [java]     at org.apache.cxf.transport.AbstractConduit.close(AbstractCondui
t.java:66)
     [java]     at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.j
ava:591)
     [java]     at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSe
nderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
     [java]     ... 7 more
     [java] Java Result: 1

BUILD SUCCESSFUL
Total time: 3 seconds


Also in this error when running as a JUNIT test

java.lang.IncompatibleClassChangeError
	at org.apache.cxf.wsdl11.WSDLServiceBuilder.copyExtensionAttributes(WSDLServiceBuilder.java:120)
	at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:243)
	at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:160)
	at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:117)
	at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:141)
	at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:132)
	at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:65)
	at javax.xml.ws.Service.<init>(Service.java:36)
	at com.air_worldwide.webservices.PassportToGo.<init>(PassportToGo.java:46)
	at com.bipt.tiva.uw.jaxws.client.air_worldwide.AirWSClient.getISODataDetailPPC(AirWSClient.java:323)
	at com.bipt.tiva.test.jaxws.client.AirClientTest.testAirClientMenthod(AirClientTest.java:18)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:618)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:76)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196

  was:
Here is the WSDL that CXF cannot handle.
http://demo.aws.air-worldwide.com/aws/passporttogo.asmx?wsdl

If you generate a client with wsdl2java  in both latest releases of CXF you will see that it fails at runtime.
I tested the code against JAXWS-RI client and it works fine.

This is the usecase to test;
    

        
    public void runThis(){
        
        
try { 
   com.air_worldwide.webservices.PassportToGo service = new com.air_worldwide.webservices.PassportToGo();
   com.air_worldwide.webservices.PassportToGoSoap port = service.getPassportToGoSoap();
   	
	java.lang.String xmlReqStg = str;
   
   java.lang.String result = port.getISOData(xmlReqStg);
   System.out.println("Result = "+result);
} catch (Exception ex) {
   // TODO handle custom exceptions here
}

please use this following string for the parameter of the porg.getISOData( ) method

 "<ISORequests><RequestHeader><AIR><LicenseKey>QLAFKIUDJ%7DLWEHAVLFEJN%60%7DWQKJ%60</LicenseKey><LoginID>amkeystone_ws</LoginID><Password>amke9919</Password></AIR><Passport><LoginID>AARPASA#</LoginID>      <Password>ARPASA#</Password>      <ResellerID>33755</ResellerID><OrderAccountNumber>41619</OrderAccountNumber>      <ShipToAccountNumber>41619</ShipToAccountNumber><WebServiceUserID>PIDAIRPASSA</WebServiceUserID>      <WebServicePassword>k!9s!j45</WebServicePassword><UserID>0</UserID></Passport></RequestHeader><ISORequest><Products>DetailPPC</Products><Addresses><Options parse=\"yes\" validateCSZ=\"no\" validateAddress=\"yes\" geocode=\"yes\" returnHighestScore=\"yes\" /><Address><Type>UnparsedRiskAddress</Type><Addr1>Address 1</Addr1><City>City</City><StateProv>State</StateProv><PostalCode>Zip</PostalCode><ZIP4/><ZIPCarrierRoute/></Address></Addresses></ISORequest></ISORequests> "


Using the build.xml script i get the following error

C:\CXF\genClients>ant PassportToGoSoapClient1
Buildfile: build.xml

compile:

PassportToGoSoapClient1:
     [java] Invoking getISOData...
     [java] Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Cou
ld not send Message.
     [java]     at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy
.java:199)
     [java]     at $Proxy39.getISOData(Unknown Source)
     [java]     at com.air_worldwide.webservices.PassportToGoSoap_PassportToGoSo
ap_Client.main(PassportToGoSoap_PassportToGoSoap_Client.java:57)
     [java] Caused by: org.apache.cxf.interceptor.Fault: Could not send Message.

     [java]     at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSe
nderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
     [java]     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseI
nterceptorChain.java:221)
     [java]     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296
)
     [java]     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:242
)
     [java]     at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.ja
va:73)
     [java]     at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy
.java:178)
     [java]     ... 2 more
     [java] Caused by: java.io.IOException: Not Found
     [java]     at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream
.handleResponse(HTTPConduit.java:1929)
     [java]     at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream
.close(HTTPConduit.java:1832)
     [java]     at org.apache.cxf.transport.AbstractConduit.close(AbstractCondui
t.java:66)
     [java]     at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.j
ava:591)
     [java]     at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSe
nderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
     [java]     ... 7 more
     [java] Java Result: 1

BUILD SUCCESSFUL
Total time: 3 seconds


Also in this error when running as a JUNIT test

java.lang.IncompatibleClassChangeError
	at org.apache.cxf.wsdl11.WSDLServiceBuilder.copyExtensionAttributes(WSDLServiceBuilder.java:120)
	at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:243)
	at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:160)
	at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:117)
	at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:141)
	at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:132)
	at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:65)
	at javax.xml.ws.Service.<init>(Service.java:36)
	at com.air_worldwide.webservices.PassportToGo.<init>(PassportToGo.java:46)
	at com.bipt.tiva.uw.jaxws.client.air_worldwide.AirWSClient.getISODataDetailPPC(AirWSClient.java:323)
	at com.bipt.tiva.test.jaxws.client.AirClientTest.testAirClientMenthod(AirClientTest.java:18)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:618)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:76)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)


I take that back. it still does not work when you try to configure the client like this


		<bean id="airFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
	  		<property name="serviceClass" value="com.air_worldwide.webservices.PassportToGoSoap"/>
	  		<property name="address" value="http://demo.aws.air-worldwide.com/aws/passporttogo.asmx"/>
		</bean>	
       <bean id="airClient" class="com.air_worldwide.webservices.PassportToGoSoap" factory-bean="airFactory" factory-method="create"/>
    
    this way it seems like the configuration for no chunking is ignored

> Generated Web service Client fails for http://demo.aws.air-worldwide.com/aws/passporttogo.asmx?wsdl
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CXF-1682
>                 URL: https://issues.apache.org/jira/browse/CXF-1682
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.1.1, 2.0.7
>            Reporter: Martin Jozef
>             Fix For: 2.1.2, 2.0.8
>
>
> Here is the WSDL that CXF cannot handle.
> http://demo.aws.air-worldwide.com/aws/passporttogo.asmx?wsdl
> If you generate a client with wsdl2java  in both latest releases of CXF you will see that it fails at runtime.
> I tested the code against JAXWS-RI client and it works fine.
> This is the usecase to test;
>     
>         
>     public void runThis(){
>         
>         
> try { 
>    com.air_worldwide.webservices.PassportToGo service = new com.air_worldwide.webservices.PassportToGo();
>    com.air_worldwide.webservices.PassportToGoSoap port = service.getPassportToGoSoap();
>    	
> 	java.lang.String xmlReqStg = str;
>    
>    java.lang.String result = port.getISOData(xmlReqStg);
>    System.out.println("Result = "+result);
> } catch (Exception ex) {
>    // TODO handle custom exceptions here
> }
> please use this following string for the parameter of the porg.getISOData( ) method
>  "<ISORequests><RequestHeader><AIR><LicenseKey>QLAFKIUDJ%7DLWEHAVLFEJN%60%7DWQKJ%60</LicenseKey><LoginID>amkeystone_ws</LoginID><Password>amke9919</Password></AIR><Passport><LoginID>AARPASA#</LoginID>      <Password>ARPASA#</Password>      <ResellerID>33755</ResellerID><OrderAccountNumber>41619</OrderAccountNumber>      <ShipToAccountNumber>41619</ShipToAccountNumber><WebServiceUserID>PIDAIRPASSA</WebServiceUserID>      <WebServicePassword>k!9s!j45</WebServicePassword><UserID>0</UserID></Passport></RequestHeader><ISORequest><Products>DetailPPC</Products><Addresses><Options parse=\"yes\" validateCSZ=\"no\" validateAddress=\"yes\" geocode=\"yes\" returnHighestScore=\"yes\" /><Address><Type>UnparsedRiskAddress</Type><Addr1>Address 1</Addr1><City>City</City><StateProv>State</StateProv><PostalCode>Zip</PostalCode><ZIP4/><ZIPCarrierRoute/></Address></Addresses></ISORequest></ISORequests> "
> Using the build.xml script i get the following error
> C:\CXF\genClients>ant PassportToGoSoapClient1
> Buildfile: build.xml
> compile:
> PassportToGoSoapClient1:
>      [java] Invoking getISOData...
>      [java] Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Cou
> ld not send Message.
>      [java]     at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy
> .java:199)
>      [java]     at $Proxy39.getISOData(Unknown Source)
>      [java]     at com.air_worldwide.webservices.PassportToGoSoap_PassportToGoSo
> ap_Client.main(PassportToGoSoap_PassportToGoSoap_Client.java:57)
>      [java] Caused by: org.apache.cxf.interceptor.Fault: Could not send Message.
>      [java]     at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSe
> nderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
>      [java]     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseI
> nterceptorChain.java:221)
>      [java]     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296
> )
>      [java]     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:242
> )
>      [java]     at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.ja
> va:73)
>      [java]     at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy
> .java:178)
>      [java]     ... 2 more
>      [java] Caused by: java.io.IOException: Not Found
>      [java]     at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream
> .handleResponse(HTTPConduit.java:1929)
>      [java]     at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream
> .close(HTTPConduit.java:1832)
>      [java]     at org.apache.cxf.transport.AbstractConduit.close(AbstractCondui
> t.java:66)
>      [java]     at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.j
> ava:591)
>      [java]     at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSe
> nderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>      [java]     ... 7 more
>      [java] Java Result: 1
> BUILD SUCCESSFUL
> Total time: 3 seconds
> Also in this error when running as a JUNIT test
> java.lang.IncompatibleClassChangeError
> 	at org.apache.cxf.wsdl11.WSDLServiceBuilder.copyExtensionAttributes(WSDLServiceBuilder.java:120)
> 	at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:243)
> 	at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:160)
> 	at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:117)
> 	at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:141)
> 	at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:132)
> 	at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:65)
> 	at javax.xml.ws.Service.<init>(Service.java:36)
> 	at com.air_worldwide.webservices.PassportToGo.<init>(PassportToGo.java:46)
> 	at com.bipt.tiva.uw.jaxws.client.air_worldwide.AirWSClient.getISODataDetailPPC(AirWSClient.java:323)
> 	at com.bipt.tiva.test.jaxws.client.AirClientTest.testAirClientMenthod(AirClientTest.java:18)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:618)
> 	at junit.framework.TestCase.runTest(TestCase.java:154)
> 	at junit.framework.TestCase.runBare(TestCase.java:127)
> 	at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:76)
> 	at junit.framework.TestResult$1.protect(TestResult.java:106)
> 	at junit.framework.TestResult.runProtected(TestResult.java:124)
> 	at junit.framework.TestResult.run(TestResult.java:109)
> 	at junit.framework.TestCase.run(TestCase.java:118)
> 	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
> 	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.