Here is my client code to invoke the StrikeIron NFLTeam web service.  I 
generated the client artifacts using the wsdl2java utility with -exsh flag set 
to true after referring to http://www.jroller.com/gmazza/date/20071001 (Sending 
implicit SOAP Headers using JAX-WS).  

package client;

import java.util.*;
import javax.xml.ws.Holder;
import com.strikeiron.*;
import com.strikeiron.ws.*;
import org.apache.cxf.transports.http.configuration.*;
import org.apache.cxf.transport.http.*;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.endpoint.Client;

public class WSClient {

    private static void setProxyInfo(Object port)
    {
                Client client = ClientProxy.getClient( port );
                HTTPConduit httpConduit = (HTTPConduit) client.getConduit();
                HTTPClientPolicy policy = new HTTPClientPolicy();
                policy.setProxyServer( "proxy.domain.com" );
                policy.setProxyServerPort( 8080 );
                httpConduit.setClient( policy );
    }

    private static LicenseInfo getLicenseInfo()
    {
        LicenseInfo licenseInfo = new LicenseInfo();
        RegisteredUser registeredUser = new RegisteredUser();
        registeredUser.setUserID("[EMAIL PROTECTED]");
        registeredUser.setPassword("mypwd");
        licenseInfo.setRegisteredUser( registeredUser );
        return licenseInfo;
    }

    private static javax.xml.ws.Holder getSubscriptionInfo()
    {
        SubscriptionInfo sInfo = new SubscriptionInfo();
        javax.xml.ws.Holder holder = new javax.xml.ws.Holder( sInfo );

        return holder;  
    }

    public static void main (String[] args) {
        try {
            if (args.length != 1) {
                System.out.println("Usage: WSClient ");
                System.exit(0);
            }
            
            SDPNFLTeams sdpService = new SDPNFLTeams();
            SDPNFLTeamsSoap endpt = sdpService.getSDPNFLTeamsSoap();            
            setProxyInfo( endpt );      
           
            com.strikeiron.NFLTeamOutput x = endpt.getTeamInfoByCity( 
"INDIANAPOLLIS",getLicenseInfo(),getSubscriptionInfo() );
            List teamInfo = x.getServiceResult().getTeams().getNFLTeamInfo();
            for(NFLTeamInfo tix: teamInfo) {
                System.out.println( tix.getNickname()+" "+tix.getDivision() );
            }
            

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("Exception: " +  e.getMessage());
        }
    }
}

=================================================================================
Everthing seems fine till the execution point when I get an exception I cannot 
understand:

     [java] javax.xml.ws.soap.SOAPFaultException: Index: 3, Size: 3
     [java]     at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:175)
     [java]     at $Proxy28.getTeamInfoByCity(Unknown Source)
     [java]     at client.WSClient.main(WSClient.java:60)
     [java] Caused by: java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
     [java]     at java.util.ArrayList.RangeCheck(ArrayList.java:546)
     [java]     at java.util.ArrayList.get(ArrayList.java:321)
     [java]     at 
org.apache.cxf.message.MessageContentsList.get(MessageContentsList.java:79)
     [java]     at 
org.apache.cxf.jaxws.interceptors.HolderInInterceptor.handleMessage(HolderInInterceptor.java:64)
     [java]     at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:208)
     [java]     at 
org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:429)
     [java]     at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1955)
     [java]     at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
     [java]     at 
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
     [java]     at 
org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
     [java]     at 
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
     [java]     at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:208)
     [java]     at 
org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:276)
     [java]     at 
org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:222)
     [java]     at 
org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
     [java]     at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
     [java]     ... 2 more
     [java] Exception: Index: 3, Size: 3
=================================================================================

Thanks,

_________________________________________________________________
Windows Live SkyDrive lets you share files with faraway friends.
http://www.windowslive.com/skydrive/overview.html?ocid=TXT_TAGLM_WL_Refresh_skydrive_052008

Reply via email to