You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by tog <gu...@gmail.com> on 2007/12/03 18:29:31 UTC

Dynamic client issue with Strikeiron webservice

Here is an example that give an exception  with the StrikeIron free
webservice (you just need to register) when using the dynamic client.
Should I raise a JIRA ?

Cheers
Guillaume

import org.apache.cxf.endpoint.Client;
import org.apache.cxf.endpoint.dynamic.DynamicClientFactory;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.apache.cxf.transport.http.HTTPConduit;
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;

import java.lang.reflect.Field;


/**
 * Created by IntelliJ IDEA.
 * User: alleon
 * Date: Dec 4, 2007
 * Time: 12:20:04 AM
 * To change this template use File | Settings | File Templates.
 */
public class NFLTeam {
    private Client client = null;

    void execute(String myURL) throws ClassNotFoundException,
IllegalAccessException, InstantiationException, NoSuchFieldException {
        client =
DynamicClientFactory.newInstance().createClient(myURL,
Thread.currentThread().getContextClassLoader());

        client.getOutInterceptors().add(new LoggingOutInterceptor());
        client.getInInterceptors().add(new LoggingInInterceptor());

        HTTPConduit conduit = (HTTPConduit) client.getConduit();

        HTTPClientPolicy httpClientPolicy = conduit.getClient();
        httpClientPolicy.setAllowChunking(false);
        conduit.setClient(httpClientPolicy);

        Object obj =
Thread.currentThread().getContextClassLoader().loadClass("com.strikeiron.GetTeamInfoByCity").newInstance();
        Class clazz = obj.getClass();
        for (Field fi:clazz.getDeclaredFields()) {
            System.out.println(fi.getName());
        }

        Field af = null;
        af = clazz.getDeclaredField("userID");
        af.setAccessible(true);
        af.set(obj, "YOURLOGIN");

        af = clazz.getDeclaredField("password");
        af.setAccessible(true);
        af.set(obj, "YOURPASSWD");

        af = clazz.getDeclaredField("city");
        af.setAccessible(true);
        af.set(obj, "New York");


        try {
            Object[] response = client.invoke("GetTeamInfoByCity", obj);

            // TODO Parse the answer

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        NFLTeam nflt = new NFLTeam();
        try {
            nflt.execute("http://sdpwsparam.strikeiron.com/sdpNFLTeams?WSDL");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();  //To change body of catch statement
use File | Settings | File Templates.
        } catch (IllegalAccessException e) {
            e.printStackTrace();  //To change body of catch statement
use File | Settings | File Templates.
        } catch (InstantiationException e) {
            e.printStackTrace();  //To change body of catch statement
use File | Settings | File Templates.
        } catch (NoSuchFieldException e) {
            e.printStackTrace();  //To change body of catch statement
use File | Settings | File Templates.
        }
    }

}


Dec 4, 2007 1:21:44 AM
org.springframework.context.support.AbstractApplicationContext
prepareRefresh
INFO: Refreshing
org.apache.cxf.bus.spring.BusApplicationContext@785d65: display name
[org.apache.cxf.bus.spring.BusApplicationContext@785d65]; startup date
[Tue Dec 04 01:21:44 SGT 2007]; root of context hierarchy
Dec 4, 2007 1:21:44 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf.xml]
Dec 4, 2007 1:21:45 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-soap.xml]
Dec 4, 2007 1:21:45 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-management.xml]
Dec 4, 2007 1:21:45 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-rm.xml]
Dec 4, 2007 1:21:45 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-addr.xml]
Dec 4, 2007 1:21:45 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-http-binding.xml]
Dec 4, 2007 1:21:45 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-jms.xml]
Dec 4, 2007 1:21:45 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-jaxws.xml]
Dec 4, 2007 1:21:45 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-local.xml]
Dec 4, 2007 1:21:45 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-http-jetty.xml]
Dec 4, 2007 1:21:45 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-http.xml]
Dec 4, 2007 1:21:45 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-object-binding.xml]
Dec 4, 2007 1:21:45 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-http.xml]
Dec 4, 2007 1:21:45 AM
org.springframework.beans.factory.support.DefaultListableBeanFactory
registerBeanDefinition
INFO: Overriding bean definition for bean
'org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory':
replacing [Root bean: class
[org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory];
scope=singleton; abstract=false; lazyInit=true;
autowireCandidate=true; autowireMode=0; dependencyCheck=0;
factoryBeanName=null; factoryMethodName=null; initMethodName=null;
destroyMethodName=null; defined in class path resource
[META-INF/cxf/cxf-extension-http.xml]] with [Root bean: class
[org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory];
scope=singleton; abstract=false; lazyInit=true;
autowireCandidate=true; autowireMode=0; dependencyCheck=0;
factoryBeanName=null; factoryMethodName=null; initMethodName=null;
destroyMethodName=null; defined in class path resource
[META-INF/cxf/cxf-extension-http.xml]]
Dec 4, 2007 1:21:45 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-policy.xml]
Dec 4, 2007 1:21:45 AM
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-xml.xml]
Dec 4, 2007 1:21:45 AM
org.springframework.context.support.AbstractApplicationContext
obtainFreshBeanFactory
INFO: Bean factory for application context
[org.apache.cxf.bus.spring.BusApplicationContext@785d65]:
org.springframework.beans.factory.support.DefaultListableBeanFactory@609c13
Dec 4, 2007 1:21:45 AM
org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker
postProcessAfterInitialization
INFO: Bean 'org.apache.cxf.bus.spring.Jsr250BeanPostProcessor' is not
eligible for getting processed by all BeanPostProcessors (for example:
not eligible for auto-proxying)
Dec 4, 2007 1:21:45 AM
org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker
postProcessAfterInitialization
INFO: Bean 'org.apache.cxf.bus.spring.BusExtensionPostProcessor' is
not eligible for getting processed by all BeanPostProcessors (for
example: not eligible for auto-proxying)
Dec 4, 2007 1:21:45 AM
org.springframework.beans.factory.support.DefaultListableBeanFactory
preInstantiateSingletons
INFO: Pre-instantiating singletons in
org.springframework.beans.factory.support.DefaultListableBeanFactory@609c13:
defining beans [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.resource.ResourceManager,org.apache.cxf.configuration.Configurer,org.apache.cxf.binding.BindingFactoryManager,org.apache.cxf.transport.DestinationFactoryManager,org.apache.cxf.transport.ConduitInitiatorManager,org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,org.apache.cxf.workqueue.WorkQueueManager,org.apache.cxf.buslifecycle.BusLifeCycleManager,org.apache.cxf.endpoint.ServerRegistry,org.apache.cxf.endpoint.ServerLifeCycleManager,org.apache.cxf.endpoint.ClientLifeCycleManager,org.apache.cxf.transports.http.QueryHandlerRegistry,org.apache.cxf.endpoint.EndpointResolverRegistry,org.apache.cxf.headers.HeaderManager,org.apache.cxf.catalog.OASISCatalogManager,org.apache.cxf.binding.soap.SoapBindingFactory,org.apache.cxf.binding.soap.SoapTransportFactory,org.apache.cxf.binding.soap.customEditorConfigurer,org.apache.cxf.management.jmx.InstrumentationManagerImpl,org.apache.cxf.ws.rm.RMManager,org.apache.cxf.ws.rm.policy.RMPolicyInterceptorProvider,org.apache.cxf.ws.rm.RMAssertionBuilder,org.apache.cxf.ws.addressing.policy.AddressingAssertionBuilder,org.apache.cxf.ws.addressing.policy.AddressingPolicyInterceptorProvider,org.apache.cxf.ws.addressing.policy.UsingAddressingAssertionBuilder,org.apache.cxf.binding.http.HttpBindingFactory,org.apache.cxf.transport.jms.JMSTransportFactory,org.apache.cxf.jaxws.context.WebServiceContextResourceResolver,org.apache.cxf.transport.local.LocalTransportFactory,org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder,org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder,org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory,org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory,org.apache.cxf.binding.object.ObjectBindingFactory,org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder#1,org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder#1,org.apache.cxf.ws.policy.AssertionBuilderRegistry,org.apache.cxf.ws.policy.PolicyConstants,org.apache.cxf.ws.policy.PolicyInterceptorProviderRegistry,org.apache.cxf.ws.policy.attachment.external.DomainExpressionBuilderRegistry,org.apache.cxf.ws.policy.attachment.external.EndpointReferenceDomainExpressionBuilder,org.apache.cxf.ws.policy.PolicyBuilder,org.apache.cxf.ws.policy.PolicyEngine,org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider,org.apache.cxf.ws.policy.attachment.ServiceModelPolicyProvider,org.apache.cxf.ws.policy.mtom.MTOMAssertionBuilder,org.apache.cxf.ws.policy.mtom.MTOMPolicyInterceptorProvider,org.apache.cxf.binding.xml.XMLBindingFactory];
root of factory hierarchy
Dec 4, 2007 1:21:45 AM org.apache.cxf.configuration.spring.ConfigurerImpl <init>
INFO: Could not find the configuration file cxf.xml on the classpath.
Dec 4, 2007 1:21:53 AM
org.apache.cxf.endpoint.dynamic.DynamicClientFactory outputDebug
INFO: Created classes: com.strikeiron.ArrayOfNFLTeamInfo,
com.strikeiron.ArrayOfSIWsStatus,
com.strikeiron.ArrayOfServiceInfoRecord,
com.strikeiron.GetAllStatuses, com.strikeiron.GetAllStatusesResponse,
com.strikeiron.GetAllTeamNicknames,
com.strikeiron.GetAllTeamNicknamesResponse,
com.strikeiron.GetServiceInfo, com.strikeiron.GetServiceInfoResponse,
com.strikeiron.GetTeamInfoByCity,
com.strikeiron.GetTeamInfoByCityResponse,
com.strikeiron.GetTeamInfoByNickname,
com.strikeiron.GetTeamInfoByNicknameResponse,
com.strikeiron.NFLTeamInfo, com.strikeiron.NFLTeamOutput,
com.strikeiron.NFLTeamResult, com.strikeiron.ObjectFactory,
com.strikeiron.SILicenseInfo, com.strikeiron.SIServiceInfoResult,
com.strikeiron.SISubscriptionInfo, com.strikeiron.SIWsResult,
com.strikeiron.SIWsStatus, com.strikeiron.ServiceInfoOutput,
com.strikeiron.ServiceInfoRecord, com.strikeiron.ServiceOutput,
com.strikeiron.StatusCodeOutput, com.strikeiron.StatusCodeResult
userID
password
city
Dec 4, 2007 1:21:55 AM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Marshalling Error: Instance of
"com.strikeiron.GetTeamInfoByCity" is substituting "java.lang.String",
but "com.strikeiron.GetTeamInfoByCity" is bound to an anonymous type.
	at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:187)
	at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:51)
	at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:84)
	at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68)
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:180)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:200)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:186)
	at NFLTeam.execute(NFLTeam.java:54)
	at NFLTeam.main(NFLTeam.java:66)
Caused by: javax.xml.bind.MarshalException
 - with linked exception:
[com.sun.istack.SAXException2: Instance of
"com.strikeiron.GetTeamInfoByCity" is substituting "java.lang.String",
but "com.strikeiron.GetTeamInfoByCity" is bound to an anonymous type.]
	at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:295)
	at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:221)
	at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:70)
	at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:330)
	at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:167)
	... 11 more
Caused by: com.sun.istack.SAXException2: Instance of
"com.strikeiron.GetTeamInfoByCity" is substituting "java.lang.String",
but "com.strikeiron.GetTeamInfoByCity" is bound to an anonymous type.
	at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:225)
	at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:597)
	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:93)
	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:127)
	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:244)
	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:251)
	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:33)
	at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:461)
	at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:292)
	... 15 more
org.apache.cxf.interceptor.Fault: Marshalling Error: Instance of
"com.strikeiron.GetTeamInfoByCity" is substituting "java.lang.String",
but "com.strikeiron.GetTeamInfoByCity" is bound to an anonymous type.
	at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:187)
	at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:51)
	at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:84)
	at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68)
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:180)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:200)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:186)
	at NFLTeam.execute(NFLTeam.java:54)
	at NFLTeam.main(NFLTeam.java:66)
Caused by: javax.xml.bind.MarshalException
 - with linked exception:
[com.sun.istack.SAXException2: Instance of
"com.strikeiron.GetTeamInfoByCity" is substituting "java.lang.String",
but "com.strikeiron.GetTeamInfoByCity" is bound to an anonymous type.]
	at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:295)
	at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:221)
	at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:70)
	at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:330)
	at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:167)
	... 11 more
Caused by: com.sun.istack.SAXException2: Instance of
"com.strikeiron.GetTeamInfoByCity" is substituting "java.lang.String",
but "com.strikeiron.GetTeamInfoByCity" is bound to an anonymous type.
	at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:225)
	at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:597)
	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:93)
	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:127)
	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:244)
	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:251)
	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:33)
	at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:461)
	at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:292)
	... 15 more





-- 

Best Regards
Guillaume
http://cheztog.blogspot.com

Re: Dynamic client issue with Strikeiron webservice

Posted by tog <gu...@gmail.com>.
Hiya

Don't be mistaken, I really tried this morning and the good news is
that it is working.

Well now I am a bit confused. For the StrikeIron web services I have
to "unwrap" the object fields of the JAXB generated POJO while for the
Terra webservice I have to use that POJO.
What is the difference between those two ?
Is there a way for me, to query the client and get which form I have to call ?

Cheers
Guillaume




On Dec 4, 2007 8:53 AM, tog <gu...@gmail.com> wrote:
> Dan,
>
> I will have a look at it now.
>
> Cheers
> Guillaume
>
>
>
> On Dec 4, 2007 7:59 AM, Daniel Kulp <dk...@apache.org> wrote:
> >
> > Guillaume,
> >
> > I'm deploying a new 2.0.4 SNAPSHOT now.   That version SHOULD work if you
> > do:
> >
> > Object[] response = client.invoke("GetTeamInfoByCity",
> >     "ID", "PASSWORD", "New England");
> >
> > Creating the "GetTeamInfoByCity" object and sending that in like your
> > code does would require some extra flags and such to be passed into the
> > client or for client creation or similar since the CXF default (also the
> > default for JAX-WS) is to us an unwrapped style.
> >
> > In anycase, if you could verify with 2.0.4, that would be great.
> >
> > Dan
> >
> >
> >
> >
> > On Monday 03 December 2007, Glen Mazza wrote:
> > > Am Dienstag, den 04.12.2007, 01:29 +0800 schrieb tog:
> > > > Here is an example that give an exception  with the StrikeIron free
> > > > webservice (you just need to register) when using the dynamic
> > > > client. Should I raise a JIRA ?
> > >
> > > Yes, please, and include the code sample below (or link to the email.)
> > > No guarantees when it will get fixed, however, as Dan said the
> > > non-workaround solution is rather complex.
> > >
> > > Thanks,
> > > Glen
> > >
> > > > Cheers
> > > > Guillaume
> > > >
> > > > import org.apache.cxf.endpoint.Client;
> > > > import org.apache.cxf.endpoint.dynamic.DynamicClientFactory;
> > > > import org.apache.cxf.interceptor.LoggingInInterceptor;
> > > > import org.apache.cxf.interceptor.LoggingOutInterceptor;
> > > > import org.apache.cxf.transport.http.HTTPConduit;
> > > > import
> > > > org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
> > > >
> > > > import java.lang.reflect.Field;
> > > >
> > > >
> > > > /**
> > > >  * Created by IntelliJ IDEA.
> > > >  * User: alleon
> > > >  * Date: Dec 4, 2007
> > > >  * Time: 12:20:04 AM
> > > >  * To change this template use File | Settings | File Templates.
> > > >  */
> > > > public class NFLTeam {
> > > >     private Client client = null;
> > > >
> > > >     void execute(String myURL) throws ClassNotFoundException,
> > > > IllegalAccessException, InstantiationException, NoSuchFieldException
> > > > { client =
> > > > DynamicClientFactory.newInstance().createClient(myURL,
> > > > Thread.currentThread().getContextClassLoader());
> > > >
> > > >         client.getOutInterceptors().add(new
> > > > LoggingOutInterceptor()); client.getInInterceptors().add(new
> > > > LoggingInInterceptor());
> > > >
> > > >         HTTPConduit conduit = (HTTPConduit) client.getConduit();
> > > >
> > > >         HTTPClientPolicy httpClientPolicy = conduit.getClient();
> > > >         httpClientPolicy.setAllowChunking(false);
> > > >         conduit.setClient(httpClientPolicy);
> > > >
> > > >         Object obj =
> > > > Thread.currentThread().getContextClassLoader().loadClass("com.strike
> > > >iron.GetTeamInfoByCity").newInstance(); Class clazz = obj.getClass();
> > > >         for (Field fi:clazz.getDeclaredFields()) {
> > > >             System.out.println(fi.getName());
> > > >         }
> > > >
> > > >         Field af = null;
> > > >         af = clazz.getDeclaredField("userID");
> > > >         af.setAccessible(true);
> > > >         af.set(obj, "YOURLOGIN");
> > > >
> > > >         af = clazz.getDeclaredField("password");
> > > >         af.setAccessible(true);
> > > >         af.set(obj, "YOURPASSWD");
> > > >
> > > >         af = clazz.getDeclaredField("city");
> > > >         af.setAccessible(true);
> > > >         af.set(obj, "New York");
> > > >
> > > >
> > > >         try {
> > > >             Object[] response = client.invoke("GetTeamInfoByCity",
> > > > obj);
> > > >
> > > >             // TODO Parse the answer
> > > >
> > > >         } catch (Exception e) {
> > > >             e.printStackTrace();
> > > >         }
> > > >     }
> > > >
> > > >     public static void main(String[] args) {
> > > >         NFLTeam nflt = new NFLTeam();
> > > >         try {
> > > >
> > > > nflt.execute("http://sdpwsparam.strikeiron.com/sdpNFLTeams?WSDL"); }
> > > > catch (ClassNotFoundException e) {
> > > >             e.printStackTrace();  //To change body of catch
> > > > statement use File | Settings | File Templates.
> > > >         } catch (IllegalAccessException e) {
> > > >             e.printStackTrace();  //To change body of catch
> > > > statement use File | Settings | File Templates.
> > > >         } catch (InstantiationException e) {
> > > >             e.printStackTrace();  //To change body of catch
> > > > statement use File | Settings | File Templates.
> > > >         } catch (NoSuchFieldException e) {
> > > >             e.printStackTrace();  //To change body of catch
> > > > statement use File | Settings | File Templates.
> > > >         }
> > > >     }
> > > >
> > > > }
> > > >
> > > >
> > > > Dec 4, 2007 1:21:44 AM
> > > > org.springframework.context.support.AbstractApplicationContext
> > > > prepareRefresh
> > > > INFO: Refreshing
> > > > org.apache.cxf.bus.spring.BusApplicationContext@785d65: display name
> > > > [org.apache.cxf.bus.spring.BusApplicationContext@785d65]; startup
> > > > date [Tue Dec 04 01:21:44 SGT 2007]; root of context hierarchy
> > > > Dec 4, 2007 1:21:44 AM
> > > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > > loadBeanDefinitions
> > > > INFO: Loading XML bean definitions from class path resource
> > > > [META-INF/cxf/cxf.xml]
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > > loadBeanDefinitions
> > > > INFO: Loading XML bean definitions from class path resource
> > > > [META-INF/cxf/cxf-extension-soap.xml]
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > > loadBeanDefinitions
> > > > INFO: Loading XML bean definitions from class path resource
> > > > [META-INF/cxf/cxf-extension-management.xml]
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > > loadBeanDefinitions
> > > > INFO: Loading XML bean definitions from class path resource
> > > > [META-INF/cxf/cxf-extension-rm.xml]
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > > loadBeanDefinitions
> > > > INFO: Loading XML bean definitions from class path resource
> > > > [META-INF/cxf/cxf-extension-addr.xml]
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > > loadBeanDefinitions
> > > > INFO: Loading XML bean definitions from class path resource
> > > > [META-INF/cxf/cxf-extension-http-binding.xml]
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > > loadBeanDefinitions
> > > > INFO: Loading XML bean definitions from class path resource
> > > > [META-INF/cxf/cxf-extension-jms.xml]
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > > loadBeanDefinitions
> > > > INFO: Loading XML bean definitions from class path resource
> > > > [META-INF/cxf/cxf-extension-jaxws.xml]
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > > loadBeanDefinitions
> > > > INFO: Loading XML bean definitions from class path resource
> > > > [META-INF/cxf/cxf-extension-local.xml]
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > > loadBeanDefinitions
> > > > INFO: Loading XML bean definitions from class path resource
> > > > [META-INF/cxf/cxf-extension-http-jetty.xml]
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > > loadBeanDefinitions
> > > > INFO: Loading XML bean definitions from class path resource
> > > > [META-INF/cxf/cxf-extension-http.xml]
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > > loadBeanDefinitions
> > > > INFO: Loading XML bean definitions from class path resource
> > > > [META-INF/cxf/cxf-extension-object-binding.xml]
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > > loadBeanDefinitions
> > > > INFO: Loading XML bean definitions from class path resource
> > > > [META-INF/cxf/cxf-extension-http.xml]
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.beans.factory.support.DefaultListableBeanFactory
> > > > registerBeanDefinition
> > > > INFO: Overriding bean definition for bean
> > > > 'org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory':
> > > > replacing [Root bean: class
> > > > [org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory];
> > > > scope=singleton; abstract=false; lazyInit=true;
> > > > autowireCandidate=true; autowireMode=0; dependencyCheck=0;
> > > > factoryBeanName=null; factoryMethodName=null; initMethodName=null;
> > > > destroyMethodName=null; defined in class path resource
> > > > [META-INF/cxf/cxf-extension-http.xml]] with [Root bean: class
> > > > [org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory];
> > > > scope=singleton; abstract=false; lazyInit=true;
> > > > autowireCandidate=true; autowireMode=0; dependencyCheck=0;
> > > > factoryBeanName=null; factoryMethodName=null; initMethodName=null;
> > > > destroyMethodName=null; defined in class path resource
> > > > [META-INF/cxf/cxf-extension-http.xml]]
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > > loadBeanDefinitions
> > > > INFO: Loading XML bean definitions from class path resource
> > > > [META-INF/cxf/cxf-extension-policy.xml]
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > > loadBeanDefinitions
> > > > INFO: Loading XML bean definitions from class path resource
> > > > [META-INF/cxf/cxf-extension-xml.xml]
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.context.support.AbstractApplicationContext
> > > > obtainFreshBeanFactory
> > > > INFO: Bean factory for application context
> > > > [org.apache.cxf.bus.spring.BusApplicationContext@785d65]:
> > > > org.springframework.beans.factory.support.DefaultListableBeanFactory
> > > >@609c13 Dec 4, 2007 1:21:45 AM
> > > > org.springframework.context.support.AbstractApplicationContext$BeanP
> > > >ostProcessorChecker postProcessAfterInitialization
> > > > INFO: Bean 'org.apache.cxf.bus.spring.Jsr250BeanPostProcessor' is
> > > > not eligible for getting processed by all BeanPostProcessors (for
> > > > example: not eligible for auto-proxying)
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.context.support.AbstractApplicationContext$BeanP
> > > >ostProcessorChecker postProcessAfterInitialization
> >
> > > > INFO: Bean 'org.apache.cxf.bus.spring.BusExtensionPostProcessor' is
> > > > not eligible for getting processed by all BeanPostProcessors (for
> > > > example: not eligible for auto-proxying)
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.springframework.beans.factory.support.DefaultListableBeanFactory
> > > > preInstantiateSingletons
> > > > INFO: Pre-instantiating singletons in
> > > > org.springframework.beans.factory.support.DefaultListableBeanFactory
> > > >@609c13: defining beans
> > > > [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cx
> > > >f.bus.spring.BusExtensionPostProcessor,org.apache.cxf.resource.Resour
> > > >ceManager,org.apache.cxf.configuration.Configurer,org.apache.cxf.bind
> > > >ing.BindingFactoryManager,org.apache.cxf.transport.DestinationFactory
> > > >Manager,org.apache.cxf.transport.ConduitInitiatorManager,org.apache.c
> > > >xf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,org.apache.cxf.
> > > >workqueue.WorkQueueManager,org.apache.cxf.buslifecycle.BusLifeCycleMa
> > > >nager,org.apache.cxf.endpoint.ServerRegistry,org.apache.cxf.endpoint.
> > > >ServerLifeCycleManager,org.apache.cxf.endpoint.ClientLifeCycleManager
> > > >,org.apache.cxf.transports.http.QueryHandlerRegistry,org.apache.cxf.e
> > > >ndpoint.EndpointResolverRegistry,org.apache.cxf.headers.HeaderManager
> > > >,org.apache.cxf.catalog.OASISCatalogManager,org.apache.cxf.binding.so
> > > >ap.SoapBindingFactory,org.apache.cxf.binding.soap.SoapTransportFactor
> > > >y,org.apache.cxf.binding.soap.customEditorConfigurer,org.apache.cxf.m
> > > >anagement.jmx.InstrumentationManagerImpl,org.apache.cxf.ws.rm.RMManag
> > > >er,org.apache.cxf.ws.rm.policy.RMPolicyInterceptorProvider,org.apache
> > > >.cxf.ws.rm.RMAssertionBuilder,org.apache.cxf.ws.addressing.policy.Add
> > > >ressingAssertionBuilder,org.apache.cxf.ws.addressing.policy.Addressin
> > > >gPolicyInterceptorProvider,org.apache.cxf.ws.addressing.policy.UsingA
> > > >ddressingAssertionBuilder,org.apache.cxf.binding.http.HttpBindingFact
> > > >ory,org.apache.cxf.transport.jms.JMSTransportFactory,org.apache.cxf.j
> > > >axws.context.WebServiceContextResourceResolver,org.apache.cxf.transpo
> > > >rt.local.LocalTransportFactory,org.apache.cxf.transport.http.policy.H
> > > >TTPClientAssertionBuilder,org.apache.cxf.transport.http.policy.HTTPSe
> > > >rverAssertionBuilder,org.apache.cxf.transport.http.ClientOnlyHTTPTran
> > > >sportFactory,org.apache.cxf.transport.http_jetty.JettyHTTPTransportFa
> > > >ctory,org.apache.cxf.binding.object.ObjectBindingFactory,org.apache.c
> > > >xf.transport.http.policy.HTTPClientAssertionBuilder#1,org.apache.cxf.
> > > >transport.http.policy.HTTPServerAssertionBuilder#1,org.apache.cxf.ws.
> > > >policy.AssertionBuilderRegistry,org.apache.cxf.ws.policy.PolicyConsta
> > > >nts,org.apache.cxf.ws.policy.PolicyInterceptorProviderRegistry,org.ap
> > > >ache.cxf.ws.policy.attachment.external.DomainExpressionBuilderRegistr
> > > >y,org.apache.cxf.ws.policy.attachment.external.EndpointReferenceDomai
> >
> > > >nExpressionBuilder,org.apache.cxf.ws.policy.PolicyBuilder,org.apache.
> > > >cxf.ws.policy.PolicyEngine,org.apache.cxf.ws.policy.attachment.wsdl11
> > > >.Wsdl11AttachmentPolicyProvider,org.apache.cxf.ws.policy.attachment.S
> > > >erviceModelPolicyProvider,org.apache.cxf.ws.policy.mtom.MTOMAssertion
> > > >Builder,org.apache.cxf.ws.policy.mtom.MTOMPolicyInterceptorProvider,o
> > > >rg.apache.cxf.binding.xml.XMLBindingFactory]; root of factory
> > > > hierarchy
> > > > Dec 4, 2007 1:21:45 AM
> > > > org.apache.cxf.configuration.spring.ConfigurerImpl <init> INFO:
> > > > Could not find the configuration file cxf.xml on the classpath. Dec
> > > > 4, 2007 1:21:53 AM
> > > > org.apache.cxf.endpoint.dynamic.DynamicClientFactory outputDebug
> > > > INFO: Created classes: com.strikeiron.ArrayOfNFLTeamInfo,
> > > > com.strikeiron.ArrayOfSIWsStatus,
> > > > com.strikeiron.ArrayOfServiceInfoRecord,
> > > > com.strikeiron.GetAllStatuses,
> > > > com.strikeiron.GetAllStatusesResponse,
> > > > com.strikeiron.GetAllTeamNicknames,
> > > > com.strikeiron.GetAllTeamNicknamesResponse,
> > > > com.strikeiron.GetServiceInfo,
> > > > com.strikeiron.GetServiceInfoResponse,
> > > > com.strikeiron.GetTeamInfoByCity,
> > > > com.strikeiron.GetTeamInfoByCityResponse,
> > > > com.strikeiron.GetTeamInfoByNickname,
> > > > com.strikeiron.GetTeamInfoByNicknameResponse,
> > > > com.strikeiron.NFLTeamInfo, com.strikeiron.NFLTeamOutput,
> > > > com.strikeiron.NFLTeamResult, com.strikeiron.ObjectFactory,
> > > > com.strikeiron.SILicenseInfo, com.strikeiron.SIServiceInfoResult,
> > > > com.strikeiron.SISubscriptionInfo, com.strikeiron.SIWsResult,
> > > > com.strikeiron.SIWsStatus, com.strikeiron.ServiceInfoOutput,
> > > > com.strikeiron.ServiceInfoRecord, com.strikeiron.ServiceOutput,
> > > > com.strikeiron.StatusCodeOutput, com.strikeiron.StatusCodeResult
> > > > userID
> > > > password
> > > > city
> > > > Dec 4, 2007 1:21:55 AM org.apache.cxf.phase.PhaseInterceptorChain
> > > > doIntercept INFO: Interceptor has thrown exception, unwinding now
> > > > org.apache.cxf.interceptor.Fault: Marshalling Error: Instance of
> > > > "com.strikeiron.GetTeamInfoByCity" is substituting
> > > > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > > > to an anonymous type. at
> > > > org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.j
> > > >ava:187) at
> > > > org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:51)
> > > > at
> > > > org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writePa
> > > >rts(AbstractOutDatabindingInterceptor.java:84) at
> > > > org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutI
> > > >nterceptor.java:68) at
> > > > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercep
> > > >torChain.java:207) at
> > > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254) at
> > > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205) at
> > > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:180) at
> > > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:200) at
> > > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:186) at
> > > > NFLTeam.execute(NFLTeam.java:54)
> > > >     at NFLTeam.main(NFLTeam.java:66)
> > > > Caused by: javax.xml.bind.MarshalException
> > > >  - with linked exception:
> > > > [com.sun.istack.SAXException2: Instance of
> > > > "com.strikeiron.GetTeamInfoByCity" is substituting
> > > > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > > > to an anonymous type.] at
> > > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java
> > > >:295) at
> > > > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.ja
> > > >va:221) at
> > > > javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarsha
> > > >llerImpl.java:70) at
> > > > org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecode
> > > >r.java:330) at
> > > > org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.j
> > > >ava:167) ... 11 more
> > > > Caused by: com.sun.istack.SAXException2: Instance of
> > > > "com.strikeiron.GetTeamInfoByCity" is substituting
> > > > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > > > to an anonymous type. at
> > > > com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.
> > > >java:225) at
> > > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializ
> > > >er.java:597) at
> > > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(Elem
> > > >entBeanInfoImpl.java:93) at
> > > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(Elem
> > > >entBeanInfoImpl.java:127) at
> > > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(Elemen
> > > >tBeanInfoImpl.java:244) at
> > > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(Elemen
> > > >tBeanInfoImpl.java:251) at
> > > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(Elemen
> > > >tBeanInfoImpl.java:33) at
> > > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.
> > > >java:461) at
> > > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java
> > > >:292) ... 15 more
> > > > org.apache.cxf.interceptor.Fault: Marshalling Error: Instance of
> > > > "com.strikeiron.GetTeamInfoByCity" is substituting
> > > > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > > > to an anonymous type. at
> > > > org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.j
> > > >ava:187) at
> > > > org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:51)
> > > > at
> > > > org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writePa
> > > >rts(AbstractOutDatabindingInterceptor.java:84) at
> > > > org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutI
> > > >nterceptor.java:68) at
> > > > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercep
> > > >torChain.java:207) at
> > > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254) at
> > > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205) at
> > > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:180) at
> > > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:200) at
> > > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:186) at
> > > > NFLTeam.execute(NFLTeam.java:54)
> > > >     at NFLTeam.main(NFLTeam.java:66)
> > > > Caused by: javax.xml.bind.MarshalException
> > > >  - with linked exception:
> > > > [com.sun.istack.SAXException2: Instance of
> > > > "com.strikeiron.GetTeamInfoByCity" is substituting
> > > > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > > > to an anonymous type.] at
> > > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java
> > > >:295) at
> > > > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.ja
> > > >va:221) at
> > > > javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarsha
> > > >llerImpl.java:70) at
> > > > org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecode
> > > >r.java:330) at
> > > > org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.j
> > > >ava:167) ... 11 more
> > > > Caused by: com.sun.istack.SAXException2: Instance of
> > > > "com.strikeiron.GetTeamInfoByCity" is substituting
> > > > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > > > to an anonymous type. at
> > > > com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.
> > > >java:225) at
> > > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializ
> > > >er.java:597) at
> > > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(Elem
> > > >entBeanInfoImpl.java:93) at
> > > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(Elem
> > > >entBeanInfoImpl.java:127) at
> > > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(Elemen
> > > >tBeanInfoImpl.java:244) at
> > > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(Elemen
> > > >tBeanInfoImpl.java:251) at
> > > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(Elemen
> > > >tBeanInfoImpl.java:33) at
> > > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.
> > > >java:461) at
> > > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java
> > > >:292) ... 15 more
> >
> >
> >
> > --
> > J. Daniel Kulp
> > Principal Engineer
> > IONA
> > P: 781-902-8727    C: 508-380-7194
> > daniel.kulp@iona.com
> > http://www.dankulp.com/blog
> >
>
>
>
>
> --
>
> Best Regards
> Guillaume
> http://cheztog.blogspot.com
>



-- 

Best Regards
Guillaume
http://cheztog.blogspot.com

Re: Dynamic client issue with Strikeiron webservice

Posted by tog <gu...@gmail.com>.
Dan,

I will have a look at it now.

Cheers
Guillaume


On Dec 4, 2007 7:59 AM, Daniel Kulp <dk...@apache.org> wrote:
>
> Guillaume,
>
> I'm deploying a new 2.0.4 SNAPSHOT now.   That version SHOULD work if you
> do:
>
> Object[] response = client.invoke("GetTeamInfoByCity",
>     "ID", "PASSWORD", "New England");
>
> Creating the "GetTeamInfoByCity" object and sending that in like your
> code does would require some extra flags and such to be passed into the
> client or for client creation or similar since the CXF default (also the
> default for JAX-WS) is to us an unwrapped style.
>
> In anycase, if you could verify with 2.0.4, that would be great.
>
> Dan
>
>
>
>
> On Monday 03 December 2007, Glen Mazza wrote:
> > Am Dienstag, den 04.12.2007, 01:29 +0800 schrieb tog:
> > > Here is an example that give an exception  with the StrikeIron free
> > > webservice (you just need to register) when using the dynamic
> > > client. Should I raise a JIRA ?
> >
> > Yes, please, and include the code sample below (or link to the email.)
> > No guarantees when it will get fixed, however, as Dan said the
> > non-workaround solution is rather complex.
> >
> > Thanks,
> > Glen
> >
> > > Cheers
> > > Guillaume
> > >
> > > import org.apache.cxf.endpoint.Client;
> > > import org.apache.cxf.endpoint.dynamic.DynamicClientFactory;
> > > import org.apache.cxf.interceptor.LoggingInInterceptor;
> > > import org.apache.cxf.interceptor.LoggingOutInterceptor;
> > > import org.apache.cxf.transport.http.HTTPConduit;
> > > import
> > > org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
> > >
> > > import java.lang.reflect.Field;
> > >
> > >
> > > /**
> > >  * Created by IntelliJ IDEA.
> > >  * User: alleon
> > >  * Date: Dec 4, 2007
> > >  * Time: 12:20:04 AM
> > >  * To change this template use File | Settings | File Templates.
> > >  */
> > > public class NFLTeam {
> > >     private Client client = null;
> > >
> > >     void execute(String myURL) throws ClassNotFoundException,
> > > IllegalAccessException, InstantiationException, NoSuchFieldException
> > > { client =
> > > DynamicClientFactory.newInstance().createClient(myURL,
> > > Thread.currentThread().getContextClassLoader());
> > >
> > >         client.getOutInterceptors().add(new
> > > LoggingOutInterceptor()); client.getInInterceptors().add(new
> > > LoggingInInterceptor());
> > >
> > >         HTTPConduit conduit = (HTTPConduit) client.getConduit();
> > >
> > >         HTTPClientPolicy httpClientPolicy = conduit.getClient();
> > >         httpClientPolicy.setAllowChunking(false);
> > >         conduit.setClient(httpClientPolicy);
> > >
> > >         Object obj =
> > > Thread.currentThread().getContextClassLoader().loadClass("com.strike
> > >iron.GetTeamInfoByCity").newInstance(); Class clazz = obj.getClass();
> > >         for (Field fi:clazz.getDeclaredFields()) {
> > >             System.out.println(fi.getName());
> > >         }
> > >
> > >         Field af = null;
> > >         af = clazz.getDeclaredField("userID");
> > >         af.setAccessible(true);
> > >         af.set(obj, "YOURLOGIN");
> > >
> > >         af = clazz.getDeclaredField("password");
> > >         af.setAccessible(true);
> > >         af.set(obj, "YOURPASSWD");
> > >
> > >         af = clazz.getDeclaredField("city");
> > >         af.setAccessible(true);
> > >         af.set(obj, "New York");
> > >
> > >
> > >         try {
> > >             Object[] response = client.invoke("GetTeamInfoByCity",
> > > obj);
> > >
> > >             // TODO Parse the answer
> > >
> > >         } catch (Exception e) {
> > >             e.printStackTrace();
> > >         }
> > >     }
> > >
> > >     public static void main(String[] args) {
> > >         NFLTeam nflt = new NFLTeam();
> > >         try {
> > >
> > > nflt.execute("http://sdpwsparam.strikeiron.com/sdpNFLTeams?WSDL"); }
> > > catch (ClassNotFoundException e) {
> > >             e.printStackTrace();  //To change body of catch
> > > statement use File | Settings | File Templates.
> > >         } catch (IllegalAccessException e) {
> > >             e.printStackTrace();  //To change body of catch
> > > statement use File | Settings | File Templates.
> > >         } catch (InstantiationException e) {
> > >             e.printStackTrace();  //To change body of catch
> > > statement use File | Settings | File Templates.
> > >         } catch (NoSuchFieldException e) {
> > >             e.printStackTrace();  //To change body of catch
> > > statement use File | Settings | File Templates.
> > >         }
> > >     }
> > >
> > > }
> > >
> > >
> > > Dec 4, 2007 1:21:44 AM
> > > org.springframework.context.support.AbstractApplicationContext
> > > prepareRefresh
> > > INFO: Refreshing
> > > org.apache.cxf.bus.spring.BusApplicationContext@785d65: display name
> > > [org.apache.cxf.bus.spring.BusApplicationContext@785d65]; startup
> > > date [Tue Dec 04 01:21:44 SGT 2007]; root of context hierarchy
> > > Dec 4, 2007 1:21:44 AM
> > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > loadBeanDefinitions
> > > INFO: Loading XML bean definitions from class path resource
> > > [META-INF/cxf/cxf.xml]
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > loadBeanDefinitions
> > > INFO: Loading XML bean definitions from class path resource
> > > [META-INF/cxf/cxf-extension-soap.xml]
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > loadBeanDefinitions
> > > INFO: Loading XML bean definitions from class path resource
> > > [META-INF/cxf/cxf-extension-management.xml]
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > loadBeanDefinitions
> > > INFO: Loading XML bean definitions from class path resource
> > > [META-INF/cxf/cxf-extension-rm.xml]
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > loadBeanDefinitions
> > > INFO: Loading XML bean definitions from class path resource
> > > [META-INF/cxf/cxf-extension-addr.xml]
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > loadBeanDefinitions
> > > INFO: Loading XML bean definitions from class path resource
> > > [META-INF/cxf/cxf-extension-http-binding.xml]
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > loadBeanDefinitions
> > > INFO: Loading XML bean definitions from class path resource
> > > [META-INF/cxf/cxf-extension-jms.xml]
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > loadBeanDefinitions
> > > INFO: Loading XML bean definitions from class path resource
> > > [META-INF/cxf/cxf-extension-jaxws.xml]
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > loadBeanDefinitions
> > > INFO: Loading XML bean definitions from class path resource
> > > [META-INF/cxf/cxf-extension-local.xml]
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > loadBeanDefinitions
> > > INFO: Loading XML bean definitions from class path resource
> > > [META-INF/cxf/cxf-extension-http-jetty.xml]
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > loadBeanDefinitions
> > > INFO: Loading XML bean definitions from class path resource
> > > [META-INF/cxf/cxf-extension-http.xml]
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > loadBeanDefinitions
> > > INFO: Loading XML bean definitions from class path resource
> > > [META-INF/cxf/cxf-extension-object-binding.xml]
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > loadBeanDefinitions
> > > INFO: Loading XML bean definitions from class path resource
> > > [META-INF/cxf/cxf-extension-http.xml]
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.beans.factory.support.DefaultListableBeanFactory
> > > registerBeanDefinition
> > > INFO: Overriding bean definition for bean
> > > 'org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory':
> > > replacing [Root bean: class
> > > [org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory];
> > > scope=singleton; abstract=false; lazyInit=true;
> > > autowireCandidate=true; autowireMode=0; dependencyCheck=0;
> > > factoryBeanName=null; factoryMethodName=null; initMethodName=null;
> > > destroyMethodName=null; defined in class path resource
> > > [META-INF/cxf/cxf-extension-http.xml]] with [Root bean: class
> > > [org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory];
> > > scope=singleton; abstract=false; lazyInit=true;
> > > autowireCandidate=true; autowireMode=0; dependencyCheck=0;
> > > factoryBeanName=null; factoryMethodName=null; initMethodName=null;
> > > destroyMethodName=null; defined in class path resource
> > > [META-INF/cxf/cxf-extension-http.xml]]
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > loadBeanDefinitions
> > > INFO: Loading XML bean definitions from class path resource
> > > [META-INF/cxf/cxf-extension-policy.xml]
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > > loadBeanDefinitions
> > > INFO: Loading XML bean definitions from class path resource
> > > [META-INF/cxf/cxf-extension-xml.xml]
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.context.support.AbstractApplicationContext
> > > obtainFreshBeanFactory
> > > INFO: Bean factory for application context
> > > [org.apache.cxf.bus.spring.BusApplicationContext@785d65]:
> > > org.springframework.beans.factory.support.DefaultListableBeanFactory
> > >@609c13 Dec 4, 2007 1:21:45 AM
> > > org.springframework.context.support.AbstractApplicationContext$BeanP
> > >ostProcessorChecker postProcessAfterInitialization
> > > INFO: Bean 'org.apache.cxf.bus.spring.Jsr250BeanPostProcessor' is
> > > not eligible for getting processed by all BeanPostProcessors (for
> > > example: not eligible for auto-proxying)
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.context.support.AbstractApplicationContext$BeanP
> > >ostProcessorChecker postProcessAfterInitialization
>
> > > INFO: Bean 'org.apache.cxf.bus.spring.BusExtensionPostProcessor' is
> > > not eligible for getting processed by all BeanPostProcessors (for
> > > example: not eligible for auto-proxying)
> > > Dec 4, 2007 1:21:45 AM
> > > org.springframework.beans.factory.support.DefaultListableBeanFactory
> > > preInstantiateSingletons
> > > INFO: Pre-instantiating singletons in
> > > org.springframework.beans.factory.support.DefaultListableBeanFactory
> > >@609c13: defining beans
> > > [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cx
> > >f.bus.spring.BusExtensionPostProcessor,org.apache.cxf.resource.Resour
> > >ceManager,org.apache.cxf.configuration.Configurer,org.apache.cxf.bind
> > >ing.BindingFactoryManager,org.apache.cxf.transport.DestinationFactory
> > >Manager,org.apache.cxf.transport.ConduitInitiatorManager,org.apache.c
> > >xf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,org.apache.cxf.
> > >workqueue.WorkQueueManager,org.apache.cxf.buslifecycle.BusLifeCycleMa
> > >nager,org.apache.cxf.endpoint.ServerRegistry,org.apache.cxf.endpoint.
> > >ServerLifeCycleManager,org.apache.cxf.endpoint.ClientLifeCycleManager
> > >,org.apache.cxf.transports.http.QueryHandlerRegistry,org.apache.cxf.e
> > >ndpoint.EndpointResolverRegistry,org.apache.cxf.headers.HeaderManager
> > >,org.apache.cxf.catalog.OASISCatalogManager,org.apache.cxf.binding.so
> > >ap.SoapBindingFactory,org.apache.cxf.binding.soap.SoapTransportFactor
> > >y,org.apache.cxf.binding.soap.customEditorConfigurer,org.apache.cxf.m
> > >anagement.jmx.InstrumentationManagerImpl,org.apache.cxf.ws.rm.RMManag
> > >er,org.apache.cxf.ws.rm.policy.RMPolicyInterceptorProvider,org.apache
> > >.cxf.ws.rm.RMAssertionBuilder,org.apache.cxf.ws.addressing.policy.Add
> > >ressingAssertionBuilder,org.apache.cxf.ws.addressing.policy.Addressin
> > >gPolicyInterceptorProvider,org.apache.cxf.ws.addressing.policy.UsingA
> > >ddressingAssertionBuilder,org.apache.cxf.binding.http.HttpBindingFact
> > >ory,org.apache.cxf.transport.jms.JMSTransportFactory,org.apache.cxf.j
> > >axws.context.WebServiceContextResourceResolver,org.apache.cxf.transpo
> > >rt.local.LocalTransportFactory,org.apache.cxf.transport.http.policy.H
> > >TTPClientAssertionBuilder,org.apache.cxf.transport.http.policy.HTTPSe
> > >rverAssertionBuilder,org.apache.cxf.transport.http.ClientOnlyHTTPTran
> > >sportFactory,org.apache.cxf.transport.http_jetty.JettyHTTPTransportFa
> > >ctory,org.apache.cxf.binding.object.ObjectBindingFactory,org.apache.c
> > >xf.transport.http.policy.HTTPClientAssertionBuilder#1,org.apache.cxf.
> > >transport.http.policy.HTTPServerAssertionBuilder#1,org.apache.cxf.ws.
> > >policy.AssertionBuilderRegistry,org.apache.cxf.ws.policy.PolicyConsta
> > >nts,org.apache.cxf.ws.policy.PolicyInterceptorProviderRegistry,org.ap
> > >ache.cxf.ws.policy.attachment.external.DomainExpressionBuilderRegistr
> > >y,org.apache.cxf.ws.policy.attachment.external.EndpointReferenceDomai
>
> > >nExpressionBuilder,org.apache.cxf.ws.policy.PolicyBuilder,org.apache.
> > >cxf.ws.policy.PolicyEngine,org.apache.cxf.ws.policy.attachment.wsdl11
> > >.Wsdl11AttachmentPolicyProvider,org.apache.cxf.ws.policy.attachment.S
> > >erviceModelPolicyProvider,org.apache.cxf.ws.policy.mtom.MTOMAssertion
> > >Builder,org.apache.cxf.ws.policy.mtom.MTOMPolicyInterceptorProvider,o
> > >rg.apache.cxf.binding.xml.XMLBindingFactory]; root of factory
> > > hierarchy
> > > Dec 4, 2007 1:21:45 AM
> > > org.apache.cxf.configuration.spring.ConfigurerImpl <init> INFO:
> > > Could not find the configuration file cxf.xml on the classpath. Dec
> > > 4, 2007 1:21:53 AM
> > > org.apache.cxf.endpoint.dynamic.DynamicClientFactory outputDebug
> > > INFO: Created classes: com.strikeiron.ArrayOfNFLTeamInfo,
> > > com.strikeiron.ArrayOfSIWsStatus,
> > > com.strikeiron.ArrayOfServiceInfoRecord,
> > > com.strikeiron.GetAllStatuses,
> > > com.strikeiron.GetAllStatusesResponse,
> > > com.strikeiron.GetAllTeamNicknames,
> > > com.strikeiron.GetAllTeamNicknamesResponse,
> > > com.strikeiron.GetServiceInfo,
> > > com.strikeiron.GetServiceInfoResponse,
> > > com.strikeiron.GetTeamInfoByCity,
> > > com.strikeiron.GetTeamInfoByCityResponse,
> > > com.strikeiron.GetTeamInfoByNickname,
> > > com.strikeiron.GetTeamInfoByNicknameResponse,
> > > com.strikeiron.NFLTeamInfo, com.strikeiron.NFLTeamOutput,
> > > com.strikeiron.NFLTeamResult, com.strikeiron.ObjectFactory,
> > > com.strikeiron.SILicenseInfo, com.strikeiron.SIServiceInfoResult,
> > > com.strikeiron.SISubscriptionInfo, com.strikeiron.SIWsResult,
> > > com.strikeiron.SIWsStatus, com.strikeiron.ServiceInfoOutput,
> > > com.strikeiron.ServiceInfoRecord, com.strikeiron.ServiceOutput,
> > > com.strikeiron.StatusCodeOutput, com.strikeiron.StatusCodeResult
> > > userID
> > > password
> > > city
> > > Dec 4, 2007 1:21:55 AM org.apache.cxf.phase.PhaseInterceptorChain
> > > doIntercept INFO: Interceptor has thrown exception, unwinding now
> > > org.apache.cxf.interceptor.Fault: Marshalling Error: Instance of
> > > "com.strikeiron.GetTeamInfoByCity" is substituting
> > > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > > to an anonymous type. at
> > > org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.j
> > >ava:187) at
> > > org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:51)
> > > at
> > > org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writePa
> > >rts(AbstractOutDatabindingInterceptor.java:84) at
> > > org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutI
> > >nterceptor.java:68) at
> > > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercep
> > >torChain.java:207) at
> > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254) at
> > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205) at
> > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:180) at
> > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:200) at
> > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:186) at
> > > NFLTeam.execute(NFLTeam.java:54)
> > >     at NFLTeam.main(NFLTeam.java:66)
> > > Caused by: javax.xml.bind.MarshalException
> > >  - with linked exception:
> > > [com.sun.istack.SAXException2: Instance of
> > > "com.strikeiron.GetTeamInfoByCity" is substituting
> > > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > > to an anonymous type.] at
> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java
> > >:295) at
> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.ja
> > >va:221) at
> > > javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarsha
> > >llerImpl.java:70) at
> > > org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecode
> > >r.java:330) at
> > > org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.j
> > >ava:167) ... 11 more
> > > Caused by: com.sun.istack.SAXException2: Instance of
> > > "com.strikeiron.GetTeamInfoByCity" is substituting
> > > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > > to an anonymous type. at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.
> > >java:225) at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializ
> > >er.java:597) at
> > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(Elem
> > >entBeanInfoImpl.java:93) at
> > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(Elem
> > >entBeanInfoImpl.java:127) at
> > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(Elemen
> > >tBeanInfoImpl.java:244) at
> > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(Elemen
> > >tBeanInfoImpl.java:251) at
> > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(Elemen
> > >tBeanInfoImpl.java:33) at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.
> > >java:461) at
> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java
> > >:292) ... 15 more
> > > org.apache.cxf.interceptor.Fault: Marshalling Error: Instance of
> > > "com.strikeiron.GetTeamInfoByCity" is substituting
> > > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > > to an anonymous type. at
> > > org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.j
> > >ava:187) at
> > > org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:51)
> > > at
> > > org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writePa
> > >rts(AbstractOutDatabindingInterceptor.java:84) at
> > > org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutI
> > >nterceptor.java:68) at
> > > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercep
> > >torChain.java:207) at
> > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254) at
> > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205) at
> > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:180) at
> > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:200) at
> > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:186) at
> > > NFLTeam.execute(NFLTeam.java:54)
> > >     at NFLTeam.main(NFLTeam.java:66)
> > > Caused by: javax.xml.bind.MarshalException
> > >  - with linked exception:
> > > [com.sun.istack.SAXException2: Instance of
> > > "com.strikeiron.GetTeamInfoByCity" is substituting
> > > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > > to an anonymous type.] at
> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java
> > >:295) at
> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.ja
> > >va:221) at
> > > javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarsha
> > >llerImpl.java:70) at
> > > org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecode
> > >r.java:330) at
> > > org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.j
> > >ava:167) ... 11 more
> > > Caused by: com.sun.istack.SAXException2: Instance of
> > > "com.strikeiron.GetTeamInfoByCity" is substituting
> > > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > > to an anonymous type. at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.
> > >java:225) at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializ
> > >er.java:597) at
> > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(Elem
> > >entBeanInfoImpl.java:93) at
> > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(Elem
> > >entBeanInfoImpl.java:127) at
> > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(Elemen
> > >tBeanInfoImpl.java:244) at
> > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(Elemen
> > >tBeanInfoImpl.java:251) at
> > > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(Elemen
> > >tBeanInfoImpl.java:33) at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.
> > >java:461) at
> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java
> > >:292) ... 15 more
>
>
>
> --
> J. Daniel Kulp
> Principal Engineer
> IONA
> P: 781-902-8727    C: 508-380-7194
> daniel.kulp@iona.com
> http://www.dankulp.com/blog
>



-- 

Best Regards
Guillaume
http://cheztog.blogspot.com

Re: Dynamic client issue with Strikeiron webservice

Posted by Daniel Kulp <dk...@apache.org>.
Guillaume,

I'm deploying a new 2.0.4 SNAPSHOT now.   That version SHOULD work if you 
do:

Object[] response = client.invoke("GetTeamInfoByCity",
    "ID", "PASSWORD", "New England");

Creating the "GetTeamInfoByCity" object and sending that in like your 
code does would require some extra flags and such to be passed into the 
client or for client creation or similar since the CXF default (also the 
default for JAX-WS) is to us an unwrapped style.

In anycase, if you could verify with 2.0.4, that would be great.

Dan



On Monday 03 December 2007, Glen Mazza wrote:
> Am Dienstag, den 04.12.2007, 01:29 +0800 schrieb tog:
> > Here is an example that give an exception  with the StrikeIron free
> > webservice (you just need to register) when using the dynamic
> > client. Should I raise a JIRA ?
>
> Yes, please, and include the code sample below (or link to the email.)
> No guarantees when it will get fixed, however, as Dan said the
> non-workaround solution is rather complex.
>
> Thanks,
> Glen
>
> > Cheers
> > Guillaume
> >
> > import org.apache.cxf.endpoint.Client;
> > import org.apache.cxf.endpoint.dynamic.DynamicClientFactory;
> > import org.apache.cxf.interceptor.LoggingInInterceptor;
> > import org.apache.cxf.interceptor.LoggingOutInterceptor;
> > import org.apache.cxf.transport.http.HTTPConduit;
> > import
> > org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
> >
> > import java.lang.reflect.Field;
> >
> >
> > /**
> >  * Created by IntelliJ IDEA.
> >  * User: alleon
> >  * Date: Dec 4, 2007
> >  * Time: 12:20:04 AM
> >  * To change this template use File | Settings | File Templates.
> >  */
> > public class NFLTeam {
> >     private Client client = null;
> >
> >     void execute(String myURL) throws ClassNotFoundException,
> > IllegalAccessException, InstantiationException, NoSuchFieldException
> > { client =
> > DynamicClientFactory.newInstance().createClient(myURL,
> > Thread.currentThread().getContextClassLoader());
> >
> >         client.getOutInterceptors().add(new
> > LoggingOutInterceptor()); client.getInInterceptors().add(new
> > LoggingInInterceptor());
> >
> >         HTTPConduit conduit = (HTTPConduit) client.getConduit();
> >
> >         HTTPClientPolicy httpClientPolicy = conduit.getClient();
> >         httpClientPolicy.setAllowChunking(false);
> >         conduit.setClient(httpClientPolicy);
> >
> >         Object obj =
> > Thread.currentThread().getContextClassLoader().loadClass("com.strike
> >iron.GetTeamInfoByCity").newInstance(); Class clazz = obj.getClass();
> >         for (Field fi:clazz.getDeclaredFields()) {
> >             System.out.println(fi.getName());
> >         }
> >
> >         Field af = null;
> >         af = clazz.getDeclaredField("userID");
> >         af.setAccessible(true);
> >         af.set(obj, "YOURLOGIN");
> >
> >         af = clazz.getDeclaredField("password");
> >         af.setAccessible(true);
> >         af.set(obj, "YOURPASSWD");
> >
> >         af = clazz.getDeclaredField("city");
> >         af.setAccessible(true);
> >         af.set(obj, "New York");
> >
> >
> >         try {
> >             Object[] response = client.invoke("GetTeamInfoByCity",
> > obj);
> >
> >             // TODO Parse the answer
> >
> >         } catch (Exception e) {
> >             e.printStackTrace();
> >         }
> >     }
> >
> >     public static void main(String[] args) {
> >         NFLTeam nflt = new NFLTeam();
> >         try {
> >            
> > nflt.execute("http://sdpwsparam.strikeiron.com/sdpNFLTeams?WSDL"); }
> > catch (ClassNotFoundException e) {
> >             e.printStackTrace();  //To change body of catch
> > statement use File | Settings | File Templates.
> >         } catch (IllegalAccessException e) {
> >             e.printStackTrace();  //To change body of catch
> > statement use File | Settings | File Templates.
> >         } catch (InstantiationException e) {
> >             e.printStackTrace();  //To change body of catch
> > statement use File | Settings | File Templates.
> >         } catch (NoSuchFieldException e) {
> >             e.printStackTrace();  //To change body of catch
> > statement use File | Settings | File Templates.
> >         }
> >     }
> >
> > }
> >
> >
> > Dec 4, 2007 1:21:44 AM
> > org.springframework.context.support.AbstractApplicationContext
> > prepareRefresh
> > INFO: Refreshing
> > org.apache.cxf.bus.spring.BusApplicationContext@785d65: display name
> > [org.apache.cxf.bus.spring.BusApplicationContext@785d65]; startup
> > date [Tue Dec 04 01:21:44 SGT 2007]; root of context hierarchy
> > Dec 4, 2007 1:21:44 AM
> > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > loadBeanDefinitions
> > INFO: Loading XML bean definitions from class path resource
> > [META-INF/cxf/cxf.xml]
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > loadBeanDefinitions
> > INFO: Loading XML bean definitions from class path resource
> > [META-INF/cxf/cxf-extension-soap.xml]
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > loadBeanDefinitions
> > INFO: Loading XML bean definitions from class path resource
> > [META-INF/cxf/cxf-extension-management.xml]
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > loadBeanDefinitions
> > INFO: Loading XML bean definitions from class path resource
> > [META-INF/cxf/cxf-extension-rm.xml]
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > loadBeanDefinitions
> > INFO: Loading XML bean definitions from class path resource
> > [META-INF/cxf/cxf-extension-addr.xml]
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > loadBeanDefinitions
> > INFO: Loading XML bean definitions from class path resource
> > [META-INF/cxf/cxf-extension-http-binding.xml]
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > loadBeanDefinitions
> > INFO: Loading XML bean definitions from class path resource
> > [META-INF/cxf/cxf-extension-jms.xml]
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > loadBeanDefinitions
> > INFO: Loading XML bean definitions from class path resource
> > [META-INF/cxf/cxf-extension-jaxws.xml]
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > loadBeanDefinitions
> > INFO: Loading XML bean definitions from class path resource
> > [META-INF/cxf/cxf-extension-local.xml]
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > loadBeanDefinitions
> > INFO: Loading XML bean definitions from class path resource
> > [META-INF/cxf/cxf-extension-http-jetty.xml]
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > loadBeanDefinitions
> > INFO: Loading XML bean definitions from class path resource
> > [META-INF/cxf/cxf-extension-http.xml]
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > loadBeanDefinitions
> > INFO: Loading XML bean definitions from class path resource
> > [META-INF/cxf/cxf-extension-object-binding.xml]
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > loadBeanDefinitions
> > INFO: Loading XML bean definitions from class path resource
> > [META-INF/cxf/cxf-extension-http.xml]
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.beans.factory.support.DefaultListableBeanFactory
> > registerBeanDefinition
> > INFO: Overriding bean definition for bean
> > 'org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory':
> > replacing [Root bean: class
> > [org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory];
> > scope=singleton; abstract=false; lazyInit=true;
> > autowireCandidate=true; autowireMode=0; dependencyCheck=0;
> > factoryBeanName=null; factoryMethodName=null; initMethodName=null;
> > destroyMethodName=null; defined in class path resource
> > [META-INF/cxf/cxf-extension-http.xml]] with [Root bean: class
> > [org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory];
> > scope=singleton; abstract=false; lazyInit=true;
> > autowireCandidate=true; autowireMode=0; dependencyCheck=0;
> > factoryBeanName=null; factoryMethodName=null; initMethodName=null;
> > destroyMethodName=null; defined in class path resource
> > [META-INF/cxf/cxf-extension-http.xml]]
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > loadBeanDefinitions
> > INFO: Loading XML bean definitions from class path resource
> > [META-INF/cxf/cxf-extension-policy.xml]
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> > loadBeanDefinitions
> > INFO: Loading XML bean definitions from class path resource
> > [META-INF/cxf/cxf-extension-xml.xml]
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.context.support.AbstractApplicationContext
> > obtainFreshBeanFactory
> > INFO: Bean factory for application context
> > [org.apache.cxf.bus.spring.BusApplicationContext@785d65]:
> > org.springframework.beans.factory.support.DefaultListableBeanFactory
> >@609c13 Dec 4, 2007 1:21:45 AM
> > org.springframework.context.support.AbstractApplicationContext$BeanP
> >ostProcessorChecker postProcessAfterInitialization
> > INFO: Bean 'org.apache.cxf.bus.spring.Jsr250BeanPostProcessor' is
> > not eligible for getting processed by all BeanPostProcessors (for
> > example: not eligible for auto-proxying)
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.context.support.AbstractApplicationContext$BeanP
> >ostProcessorChecker postProcessAfterInitialization
> > INFO: Bean 'org.apache.cxf.bus.spring.BusExtensionPostProcessor' is
> > not eligible for getting processed by all BeanPostProcessors (for
> > example: not eligible for auto-proxying)
> > Dec 4, 2007 1:21:45 AM
> > org.springframework.beans.factory.support.DefaultListableBeanFactory
> > preInstantiateSingletons
> > INFO: Pre-instantiating singletons in
> > org.springframework.beans.factory.support.DefaultListableBeanFactory
> >@609c13: defining beans
> > [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cx
> >f.bus.spring.BusExtensionPostProcessor,org.apache.cxf.resource.Resour
> >ceManager,org.apache.cxf.configuration.Configurer,org.apache.cxf.bind
> >ing.BindingFactoryManager,org.apache.cxf.transport.DestinationFactory
> >Manager,org.apache.cxf.transport.ConduitInitiatorManager,org.apache.c
> >xf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,org.apache.cxf.
> >workqueue.WorkQueueManager,org.apache.cxf.buslifecycle.BusLifeCycleMa
> >nager,org.apache.cxf.endpoint.ServerRegistry,org.apache.cxf.endpoint.
> >ServerLifeCycleManager,org.apache.cxf.endpoint.ClientLifeCycleManager
> >,org.apache.cxf.transports.http.QueryHandlerRegistry,org.apache.cxf.e
> >ndpoint.EndpointResolverRegistry,org.apache.cxf.headers.HeaderManager
> >,org.apache.cxf.catalog.OASISCatalogManager,org.apache.cxf.binding.so
> >ap.SoapBindingFactory,org.apache.cxf.binding.soap.SoapTransportFactor
> >y,org.apache.cxf.binding.soap.customEditorConfigurer,org.apache.cxf.m
> >anagement.jmx.InstrumentationManagerImpl,org.apache.cxf.ws.rm.RMManag
> >er,org.apache.cxf.ws.rm.policy.RMPolicyInterceptorProvider,org.apache
> >.cxf.ws.rm.RMAssertionBuilder,org.apache.cxf.ws.addressing.policy.Add
> >ressingAssertionBuilder,org.apache.cxf.ws.addressing.policy.Addressin
> >gPolicyInterceptorProvider,org.apache.cxf.ws.addressing.policy.UsingA
> >ddressingAssertionBuilder,org.apache.cxf.binding.http.HttpBindingFact
> >ory,org.apache.cxf.transport.jms.JMSTransportFactory,org.apache.cxf.j
> >axws.context.WebServiceContextResourceResolver,org.apache.cxf.transpo
> >rt.local.LocalTransportFactory,org.apache.cxf.transport.http.policy.H
> >TTPClientAssertionBuilder,org.apache.cxf.transport.http.policy.HTTPSe
> >rverAssertionBuilder,org.apache.cxf.transport.http.ClientOnlyHTTPTran
> >sportFactory,org.apache.cxf.transport.http_jetty.JettyHTTPTransportFa
> >ctory,org.apache.cxf.binding.object.ObjectBindingFactory,org.apache.c
> >xf.transport.http.policy.HTTPClientAssertionBuilder#1,org.apache.cxf.
> >transport.http.policy.HTTPServerAssertionBuilder#1,org.apache.cxf.ws.
> >policy.AssertionBuilderRegistry,org.apache.cxf.ws.policy.PolicyConsta
> >nts,org.apache.cxf.ws.policy.PolicyInterceptorProviderRegistry,org.ap
> >ache.cxf.ws.policy.attachment.external.DomainExpressionBuilderRegistr
> >y,org.apache.cxf.ws.policy.attachment.external.EndpointReferenceDomai
> >nExpressionBuilder,org.apache.cxf.ws.policy.PolicyBuilder,org.apache.
> >cxf.ws.policy.PolicyEngine,org.apache.cxf.ws.policy.attachment.wsdl11
> >.Wsdl11AttachmentPolicyProvider,org.apache.cxf.ws.policy.attachment.S
> >erviceModelPolicyProvider,org.apache.cxf.ws.policy.mtom.MTOMAssertion
> >Builder,org.apache.cxf.ws.policy.mtom.MTOMPolicyInterceptorProvider,o
> >rg.apache.cxf.binding.xml.XMLBindingFactory]; root of factory
> > hierarchy
> > Dec 4, 2007 1:21:45 AM
> > org.apache.cxf.configuration.spring.ConfigurerImpl <init> INFO:
> > Could not find the configuration file cxf.xml on the classpath. Dec
> > 4, 2007 1:21:53 AM
> > org.apache.cxf.endpoint.dynamic.DynamicClientFactory outputDebug
> > INFO: Created classes: com.strikeiron.ArrayOfNFLTeamInfo,
> > com.strikeiron.ArrayOfSIWsStatus,
> > com.strikeiron.ArrayOfServiceInfoRecord,
> > com.strikeiron.GetAllStatuses,
> > com.strikeiron.GetAllStatusesResponse,
> > com.strikeiron.GetAllTeamNicknames,
> > com.strikeiron.GetAllTeamNicknamesResponse,
> > com.strikeiron.GetServiceInfo,
> > com.strikeiron.GetServiceInfoResponse,
> > com.strikeiron.GetTeamInfoByCity,
> > com.strikeiron.GetTeamInfoByCityResponse,
> > com.strikeiron.GetTeamInfoByNickname,
> > com.strikeiron.GetTeamInfoByNicknameResponse,
> > com.strikeiron.NFLTeamInfo, com.strikeiron.NFLTeamOutput,
> > com.strikeiron.NFLTeamResult, com.strikeiron.ObjectFactory,
> > com.strikeiron.SILicenseInfo, com.strikeiron.SIServiceInfoResult,
> > com.strikeiron.SISubscriptionInfo, com.strikeiron.SIWsResult,
> > com.strikeiron.SIWsStatus, com.strikeiron.ServiceInfoOutput,
> > com.strikeiron.ServiceInfoRecord, com.strikeiron.ServiceOutput,
> > com.strikeiron.StatusCodeOutput, com.strikeiron.StatusCodeResult
> > userID
> > password
> > city
> > Dec 4, 2007 1:21:55 AM org.apache.cxf.phase.PhaseInterceptorChain
> > doIntercept INFO: Interceptor has thrown exception, unwinding now
> > org.apache.cxf.interceptor.Fault: Marshalling Error: Instance of
> > "com.strikeiron.GetTeamInfoByCity" is substituting
> > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > to an anonymous type. at
> > org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.j
> >ava:187) at
> > org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:51)
> > at
> > org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writePa
> >rts(AbstractOutDatabindingInterceptor.java:84) at
> > org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutI
> >nterceptor.java:68) at
> > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercep
> >torChain.java:207) at
> > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254) at
> > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205) at
> > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:180) at
> > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:200) at
> > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:186) at
> > NFLTeam.execute(NFLTeam.java:54)
> > 	at NFLTeam.main(NFLTeam.java:66)
> > Caused by: javax.xml.bind.MarshalException
> >  - with linked exception:
> > [com.sun.istack.SAXException2: Instance of
> > "com.strikeiron.GetTeamInfoByCity" is substituting
> > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > to an anonymous type.] at
> > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java
> >:295) at
> > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.ja
> >va:221) at
> > javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarsha
> >llerImpl.java:70) at
> > org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecode
> >r.java:330) at
> > org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.j
> >ava:167) ... 11 more
> > Caused by: com.sun.istack.SAXException2: Instance of
> > "com.strikeiron.GetTeamInfoByCity" is substituting
> > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > to an anonymous type. at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.
> >java:225) at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializ
> >er.java:597) at
> > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(Elem
> >entBeanInfoImpl.java:93) at
> > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(Elem
> >entBeanInfoImpl.java:127) at
> > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(Elemen
> >tBeanInfoImpl.java:244) at
> > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(Elemen
> >tBeanInfoImpl.java:251) at
> > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(Elemen
> >tBeanInfoImpl.java:33) at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.
> >java:461) at
> > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java
> >:292) ... 15 more
> > org.apache.cxf.interceptor.Fault: Marshalling Error: Instance of
> > "com.strikeiron.GetTeamInfoByCity" is substituting
> > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > to an anonymous type. at
> > org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.j
> >ava:187) at
> > org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:51)
> > at
> > org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writePa
> >rts(AbstractOutDatabindingInterceptor.java:84) at
> > org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutI
> >nterceptor.java:68) at
> > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercep
> >torChain.java:207) at
> > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254) at
> > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205) at
> > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:180) at
> > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:200) at
> > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:186) at
> > NFLTeam.execute(NFLTeam.java:54)
> > 	at NFLTeam.main(NFLTeam.java:66)
> > Caused by: javax.xml.bind.MarshalException
> >  - with linked exception:
> > [com.sun.istack.SAXException2: Instance of
> > "com.strikeiron.GetTeamInfoByCity" is substituting
> > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > to an anonymous type.] at
> > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java
> >:295) at
> > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.ja
> >va:221) at
> > javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarsha
> >llerImpl.java:70) at
> > org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecode
> >r.java:330) at
> > org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.j
> >ava:167) ... 11 more
> > Caused by: com.sun.istack.SAXException2: Instance of
> > "com.strikeiron.GetTeamInfoByCity" is substituting
> > "java.lang.String", but "com.strikeiron.GetTeamInfoByCity" is bound
> > to an anonymous type. at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.
> >java:225) at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializ
> >er.java:597) at
> > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(Elem
> >entBeanInfoImpl.java:93) at
> > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(Elem
> >entBeanInfoImpl.java:127) at
> > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(Elemen
> >tBeanInfoImpl.java:244) at
> > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(Elemen
> >tBeanInfoImpl.java:251) at
> > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(Elemen
> >tBeanInfoImpl.java:33) at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.
> >java:461) at
> > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java
> >:292) ... 15 more



-- 
J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727    C: 508-380-7194
daniel.kulp@iona.com
http://www.dankulp.com/blog

Re: Dynamic client issue with Strikeiron webservice

Posted by Glen Mazza <gl...@verizon.net>.
Am Dienstag, den 04.12.2007, 01:29 +0800 schrieb tog:
> Here is an example that give an exception  with the StrikeIron free
> webservice (you just need to register) when using the dynamic client.
> Should I raise a JIRA ?
> 

Yes, please, and include the code sample below (or link to the email.)
No guarantees when it will get fixed, however, as Dan said the
non-workaround solution is rather complex.

Thanks,
Glen


> Cheers
> Guillaume
> 
> import org.apache.cxf.endpoint.Client;
> import org.apache.cxf.endpoint.dynamic.DynamicClientFactory;
> import org.apache.cxf.interceptor.LoggingInInterceptor;
> import org.apache.cxf.interceptor.LoggingOutInterceptor;
> import org.apache.cxf.transport.http.HTTPConduit;
> import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
> 
> import java.lang.reflect.Field;
> 
> 
> /**
>  * Created by IntelliJ IDEA.
>  * User: alleon
>  * Date: Dec 4, 2007
>  * Time: 12:20:04 AM
>  * To change this template use File | Settings | File Templates.
>  */
> public class NFLTeam {
>     private Client client = null;
> 
>     void execute(String myURL) throws ClassNotFoundException,
> IllegalAccessException, InstantiationException, NoSuchFieldException {
>         client =
> DynamicClientFactory.newInstance().createClient(myURL,
> Thread.currentThread().getContextClassLoader());
> 
>         client.getOutInterceptors().add(new LoggingOutInterceptor());
>         client.getInInterceptors().add(new LoggingInInterceptor());
> 
>         HTTPConduit conduit = (HTTPConduit) client.getConduit();
> 
>         HTTPClientPolicy httpClientPolicy = conduit.getClient();
>         httpClientPolicy.setAllowChunking(false);
>         conduit.setClient(httpClientPolicy);
> 
>         Object obj =
> Thread.currentThread().getContextClassLoader().loadClass("com.strikeiron.GetTeamInfoByCity").newInstance();
>         Class clazz = obj.getClass();
>         for (Field fi:clazz.getDeclaredFields()) {
>             System.out.println(fi.getName());
>         }
> 
>         Field af = null;
>         af = clazz.getDeclaredField("userID");
>         af.setAccessible(true);
>         af.set(obj, "YOURLOGIN");
> 
>         af = clazz.getDeclaredField("password");
>         af.setAccessible(true);
>         af.set(obj, "YOURPASSWD");
> 
>         af = clazz.getDeclaredField("city");
>         af.setAccessible(true);
>         af.set(obj, "New York");
> 
> 
>         try {
>             Object[] response = client.invoke("GetTeamInfoByCity", obj);
> 
>             // TODO Parse the answer
> 
>         } catch (Exception e) {
>             e.printStackTrace();
>         }
>     }
> 
>     public static void main(String[] args) {
>         NFLTeam nflt = new NFLTeam();
>         try {
>             nflt.execute("http://sdpwsparam.strikeiron.com/sdpNFLTeams?WSDL");
>         } catch (ClassNotFoundException e) {
>             e.printStackTrace();  //To change body of catch statement
> use File | Settings | File Templates.
>         } catch (IllegalAccessException e) {
>             e.printStackTrace();  //To change body of catch statement
> use File | Settings | File Templates.
>         } catch (InstantiationException e) {
>             e.printStackTrace();  //To change body of catch statement
> use File | Settings | File Templates.
>         } catch (NoSuchFieldException e) {
>             e.printStackTrace();  //To change body of catch statement
> use File | Settings | File Templates.
>         }
>     }
> 
> }
> 
> 
> Dec 4, 2007 1:21:44 AM
> org.springframework.context.support.AbstractApplicationContext
> prepareRefresh
> INFO: Refreshing
> org.apache.cxf.bus.spring.BusApplicationContext@785d65: display name
> [org.apache.cxf.bus.spring.BusApplicationContext@785d65]; startup date
> [Tue Dec 04 01:21:44 SGT 2007]; root of context hierarchy
> Dec 4, 2007 1:21:44 AM
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> loadBeanDefinitions
> INFO: Loading XML bean definitions from class path resource
> [META-INF/cxf/cxf.xml]
> Dec 4, 2007 1:21:45 AM
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> loadBeanDefinitions
> INFO: Loading XML bean definitions from class path resource
> [META-INF/cxf/cxf-extension-soap.xml]
> Dec 4, 2007 1:21:45 AM
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> loadBeanDefinitions
> INFO: Loading XML bean definitions from class path resource
> [META-INF/cxf/cxf-extension-management.xml]
> Dec 4, 2007 1:21:45 AM
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> loadBeanDefinitions
> INFO: Loading XML bean definitions from class path resource
> [META-INF/cxf/cxf-extension-rm.xml]
> Dec 4, 2007 1:21:45 AM
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> loadBeanDefinitions
> INFO: Loading XML bean definitions from class path resource
> [META-INF/cxf/cxf-extension-addr.xml]
> Dec 4, 2007 1:21:45 AM
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> loadBeanDefinitions
> INFO: Loading XML bean definitions from class path resource
> [META-INF/cxf/cxf-extension-http-binding.xml]
> Dec 4, 2007 1:21:45 AM
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> loadBeanDefinitions
> INFO: Loading XML bean definitions from class path resource
> [META-INF/cxf/cxf-extension-jms.xml]
> Dec 4, 2007 1:21:45 AM
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> loadBeanDefinitions
> INFO: Loading XML bean definitions from class path resource
> [META-INF/cxf/cxf-extension-jaxws.xml]
> Dec 4, 2007 1:21:45 AM
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> loadBeanDefinitions
> INFO: Loading XML bean definitions from class path resource
> [META-INF/cxf/cxf-extension-local.xml]
> Dec 4, 2007 1:21:45 AM
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> loadBeanDefinitions
> INFO: Loading XML bean definitions from class path resource
> [META-INF/cxf/cxf-extension-http-jetty.xml]
> Dec 4, 2007 1:21:45 AM
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> loadBeanDefinitions
> INFO: Loading XML bean definitions from class path resource
> [META-INF/cxf/cxf-extension-http.xml]
> Dec 4, 2007 1:21:45 AM
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> loadBeanDefinitions
> INFO: Loading XML bean definitions from class path resource
> [META-INF/cxf/cxf-extension-object-binding.xml]
> Dec 4, 2007 1:21:45 AM
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> loadBeanDefinitions
> INFO: Loading XML bean definitions from class path resource
> [META-INF/cxf/cxf-extension-http.xml]
> Dec 4, 2007 1:21:45 AM
> org.springframework.beans.factory.support.DefaultListableBeanFactory
> registerBeanDefinition
> INFO: Overriding bean definition for bean
> 'org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory':
> replacing [Root bean: class
> [org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory];
> scope=singleton; abstract=false; lazyInit=true;
> autowireCandidate=true; autowireMode=0; dependencyCheck=0;
> factoryBeanName=null; factoryMethodName=null; initMethodName=null;
> destroyMethodName=null; defined in class path resource
> [META-INF/cxf/cxf-extension-http.xml]] with [Root bean: class
> [org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory];
> scope=singleton; abstract=false; lazyInit=true;
> autowireCandidate=true; autowireMode=0; dependencyCheck=0;
> factoryBeanName=null; factoryMethodName=null; initMethodName=null;
> destroyMethodName=null; defined in class path resource
> [META-INF/cxf/cxf-extension-http.xml]]
> Dec 4, 2007 1:21:45 AM
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> loadBeanDefinitions
> INFO: Loading XML bean definitions from class path resource
> [META-INF/cxf/cxf-extension-policy.xml]
> Dec 4, 2007 1:21:45 AM
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader
> loadBeanDefinitions
> INFO: Loading XML bean definitions from class path resource
> [META-INF/cxf/cxf-extension-xml.xml]
> Dec 4, 2007 1:21:45 AM
> org.springframework.context.support.AbstractApplicationContext
> obtainFreshBeanFactory
> INFO: Bean factory for application context
> [org.apache.cxf.bus.spring.BusApplicationContext@785d65]:
> org.springframework.beans.factory.support.DefaultListableBeanFactory@609c13
> Dec 4, 2007 1:21:45 AM
> org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker
> postProcessAfterInitialization
> INFO: Bean 'org.apache.cxf.bus.spring.Jsr250BeanPostProcessor' is not
> eligible for getting processed by all BeanPostProcessors (for example:
> not eligible for auto-proxying)
> Dec 4, 2007 1:21:45 AM
> org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker
> postProcessAfterInitialization
> INFO: Bean 'org.apache.cxf.bus.spring.BusExtensionPostProcessor' is
> not eligible for getting processed by all BeanPostProcessors (for
> example: not eligible for auto-proxying)
> Dec 4, 2007 1:21:45 AM
> org.springframework.beans.factory.support.DefaultListableBeanFactory
> preInstantiateSingletons
> INFO: Pre-instantiating singletons in
> org.springframework.beans.factory.support.DefaultListableBeanFactory@609c13:
> defining beans [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.resource.ResourceManager,org.apache.cxf.configuration.Configurer,org.apache.cxf.binding.BindingFactoryManager,org.apache.cxf.transport.DestinationFactoryManager,org.apache.cxf.transport.ConduitInitiatorManager,org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,org.apache.cxf.workqueue.WorkQueueManager,org.apache.cxf.buslifecycle.BusLifeCycleManager,org.apache.cxf.endpoint.ServerRegistry,org.apache.cxf.endpoint.ServerLifeCycleManager,org.apache.cxf.endpoint.ClientLifeCycleManager,org.apache.cxf.transports.http.QueryHandlerRegistry,org.apache.cxf.endpoint.EndpointResolverRegistry,org.apache.cxf.headers.HeaderManager,org.apache.cxf.catalog.OASISCatalogManager,org.apache.cxf.binding.soap.SoapBindingFactory,org.apache.cxf.binding.soap.SoapTransportFactory,org.apache.cxf.binding.soap.customEditorConfigurer,org.apache.cxf.management.jmx.InstrumentationManagerImpl,org.apache.cxf.ws.rm.RMManager,org.apache.cxf.ws.rm.policy.RMPolicyInterceptorProvider,org.apache.cxf.ws.rm.RMAssertionBuilder,org.apache.cxf.ws.addressing.policy.AddressingAssertionBuilder,org.apache.cxf.ws.addressing.policy.AddressingPolicyInterceptorProvider,org.apache.cxf.ws.addressing.policy.UsingAddressingAssertionBuilder,org.apache.cxf.binding.http.HttpBindingFactory,org.apache.cxf.transport.jms.JMSTransportFactory,org.apache.cxf.jaxws.context.WebServiceContextResourceResolver,org.apache.cxf.transport.local.LocalTransportFactory,org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder,org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder,org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory,org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory,org.apache.cxf.binding.object.ObjectBindingFactory,org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder#1,org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder#1,org.apache.cxf.ws.policy.AssertionBuilderRegistry,org.apache.cxf.ws.policy.PolicyConstants,org.apache.cxf.ws.policy.PolicyInterceptorProviderRegistry,org.apache.cxf.ws.policy.attachment.external.DomainExpressionBuilderRegistry,org.apache.cxf.ws.policy.attachment.external.EndpointReferenceDomainExpressionBuilder,org.apache.cxf.ws.policy.PolicyBuilder,org.apache.cxf.ws.policy.PolicyEngine,org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider,org.apache.cxf.ws.policy.attachment.ServiceModelPolicyProvider,org.apache.cxf.ws.policy.mtom.MTOMAssertionBuilder,org.apache.cxf.ws.policy.mtom.MTOMPolicyInterceptorProvider,org.apache.cxf.binding.xml.XMLBindingFactory];
> root of factory hierarchy
> Dec 4, 2007 1:21:45 AM org.apache.cxf.configuration.spring.ConfigurerImpl <init>
> INFO: Could not find the configuration file cxf.xml on the classpath.
> Dec 4, 2007 1:21:53 AM
> org.apache.cxf.endpoint.dynamic.DynamicClientFactory outputDebug
> INFO: Created classes: com.strikeiron.ArrayOfNFLTeamInfo,
> com.strikeiron.ArrayOfSIWsStatus,
> com.strikeiron.ArrayOfServiceInfoRecord,
> com.strikeiron.GetAllStatuses, com.strikeiron.GetAllStatusesResponse,
> com.strikeiron.GetAllTeamNicknames,
> com.strikeiron.GetAllTeamNicknamesResponse,
> com.strikeiron.GetServiceInfo, com.strikeiron.GetServiceInfoResponse,
> com.strikeiron.GetTeamInfoByCity,
> com.strikeiron.GetTeamInfoByCityResponse,
> com.strikeiron.GetTeamInfoByNickname,
> com.strikeiron.GetTeamInfoByNicknameResponse,
> com.strikeiron.NFLTeamInfo, com.strikeiron.NFLTeamOutput,
> com.strikeiron.NFLTeamResult, com.strikeiron.ObjectFactory,
> com.strikeiron.SILicenseInfo, com.strikeiron.SIServiceInfoResult,
> com.strikeiron.SISubscriptionInfo, com.strikeiron.SIWsResult,
> com.strikeiron.SIWsStatus, com.strikeiron.ServiceInfoOutput,
> com.strikeiron.ServiceInfoRecord, com.strikeiron.ServiceOutput,
> com.strikeiron.StatusCodeOutput, com.strikeiron.StatusCodeResult
> userID
> password
> city
> Dec 4, 2007 1:21:55 AM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Marshalling Error: Instance of
> "com.strikeiron.GetTeamInfoByCity" is substituting "java.lang.String",
> but "com.strikeiron.GetTeamInfoByCity" is bound to an anonymous type.
> 	at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:187)
> 	at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:51)
> 	at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:84)
> 	at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68)
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:180)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:200)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:186)
> 	at NFLTeam.execute(NFLTeam.java:54)
> 	at NFLTeam.main(NFLTeam.java:66)
> Caused by: javax.xml.bind.MarshalException
>  - with linked exception:
> [com.sun.istack.SAXException2: Instance of
> "com.strikeiron.GetTeamInfoByCity" is substituting "java.lang.String",
> but "com.strikeiron.GetTeamInfoByCity" is bound to an anonymous type.]
> 	at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:295)
> 	at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:221)
> 	at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:70)
> 	at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:330)
> 	at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:167)
> 	... 11 more
> Caused by: com.sun.istack.SAXException2: Instance of
> "com.strikeiron.GetTeamInfoByCity" is substituting "java.lang.String",
> but "com.strikeiron.GetTeamInfoByCity" is bound to an anonymous type.
> 	at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:225)
> 	at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:597)
> 	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:93)
> 	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:127)
> 	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:244)
> 	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:251)
> 	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:33)
> 	at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:461)
> 	at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:292)
> 	... 15 more
> org.apache.cxf.interceptor.Fault: Marshalling Error: Instance of
> "com.strikeiron.GetTeamInfoByCity" is substituting "java.lang.String",
> but "com.strikeiron.GetTeamInfoByCity" is bound to an anonymous type.
> 	at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:187)
> 	at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:51)
> 	at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:84)
> 	at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68)
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:180)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:200)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:186)
> 	at NFLTeam.execute(NFLTeam.java:54)
> 	at NFLTeam.main(NFLTeam.java:66)
> Caused by: javax.xml.bind.MarshalException
>  - with linked exception:
> [com.sun.istack.SAXException2: Instance of
> "com.strikeiron.GetTeamInfoByCity" is substituting "java.lang.String",
> but "com.strikeiron.GetTeamInfoByCity" is bound to an anonymous type.]
> 	at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:295)
> 	at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:221)
> 	at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:70)
> 	at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:330)
> 	at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:167)
> 	... 11 more
> Caused by: com.sun.istack.SAXException2: Instance of
> "com.strikeiron.GetTeamInfoByCity" is substituting "java.lang.String",
> but "com.strikeiron.GetTeamInfoByCity" is bound to an anonymous type.
> 	at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:225)
> 	at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:597)
> 	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:93)
> 	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:127)
> 	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:244)
> 	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:251)
> 	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:33)
> 	at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:461)
> 	at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:292)
> 	... 15 more
> 
> 
> 
> 
>