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