Here you go, I created a scaled down wsdl that is as simple as I can think of, but still representative of the wsdl I'm working with that exploits this problem. I'll post the wsdl here that I created and then I'll also try the -exsh option, which I haven't been using. Here is a wsdl that will give you the problem I'm having when you call the operation it has defined:
<?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn://testnotification" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="urn://testnotification" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> <wsdl:types> <s:schema elementFormDefault="qualified" targetNamespace="urn://testnotification"> <s:element name="AuthCredentials" type="tns:AuthCredentials"/> <s:complexType name="AuthCredentials"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="username" type="s:string"/> <s:element minOccurs="0" maxOccurs="1" name="password" type="s:string"/> </s:sequence> </s:complexType> </s:schema> </wsdl:types> <wsdl:message name="notificationInput"> <wsdl:part name="parameters" type="s:string"/> </wsdl:message> <wsdl:message name="notificationOutput"> <wsdl:part name="parameters" type="s:string"/> </wsdl:message> <wsdl:message name="sendNotificationAuthCredentials"> <wsdl:part name="AuthCredentials" element="tns:AuthCredentials"/> </wsdl:message> <wsdl:portType name="NotificationServicePort"> <wsdl:operation name="sendNotification"> <wsdl:input message="tns:notificationInput"/> <wsdl:output message="tns:notificationOutput"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="NotificationServicePort" type="tns:NotificationServicePort"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <wsdl:operation name="sendNotification"> <soap:operation soapAction="urn://testnotification/sendNotification" style="document"/> <wsdl:input> <soap:body use="literal"/> <soap:header message="tns:sendNotificationAuthCredentials" part="AuthCredentials" use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="NotificationService"> <documentation xmlns="http://schemas.xmlsoap.org/wsdl/"/> <wsdl:port name="NotificationServicePort" binding="tns:NotificationServicePort"> <soap:address location="https://localhost/webservice/notification.asmx "/> </wsdl:port> </wsdl:service> </wsdl:definitions> On 9/10/07, Willem Jiang <[EMAIL PROTECTED]> wrote: > > Hi Ryan, > > Can you tell me how you generate the soap header message with the > wsdl2java? > Did you specify the option -exsh true when you call wsdl2java? > If not , please try it again. > > Willem. > > Ryan Moquin wrote: > > I actually just got my breakpoint to be hit: > > > > It's choking on an element of my WSDL that looks like this: > > > > <s:element name="AuthCredentials" type="tns:AuthCredentials"/> > > <s:complexType name="AuthCredentials"> > > <s:sequence> > > <s:element minOccurs="0" maxOccurs="1" name="username" > > type="s:string"/> > > <s:element minOccurs="0" maxOccurs="1" name="password" > > type="s:string"/> > > </s:sequence> > > </s:complexType> > > > > I would like to post the whole WSDL, but I'm not sure I'm allowed to. > > > > Something related to this element is causing an arraylist to not fill > itself > > with something. I notice that the "type" variable in the > MessagePartInfo > > class is null when representing this element. No idea why. typeClass > > variable is also null as well.... maybe it doesn't like something with > how > > this is defined? > > > > > > > > On 9/10/07, Benson Margulies <[EMAIL PROTECTED]> wrote: > > > >> If it really is never talking to the server (which would be really > >> surprising) then you should be able to create a standalone test case > >> that we could debug into? > >> > >> > >>> -----Original Message----- > >>> From: Ryan Moquin [mailto:[EMAIL PROTECTED] > >>> Sent: Monday, September 10, 2007 8:39 PM > >>> To: [email protected] > >>> Subject: Re: Can't figure out why I'm getting this error or how to > >>> troubleshoot it > >>> > >>> I tried and it appears that no request has been sent. I used > >>> > >> TCPMonitor > >> > >>> and > >>> changed the URL that my client was pointing to. When I run the > >>> > >> client, no > >> > >>> message comes across TCPMonitor and I still get the same error. It > >>> appears > >>> that it's trying to do something with the headers when constructing > >>> > >> the > >> > >>> SOAP > >>> message? I was trying get a debug point to work in netbeans in order > >>> > >> to > >> > >>> try > >>> to get an idea what CXF is trying to do at the time the exception > >>> > >> occurs, > >> > >>> but so far I haven't had luck getting netbeans to make the association > >>> > >> to > >> > >>> the source code so that the breakpoint is hit. > >>> > >>> On 9/10/07, Benson Margulies <[EMAIL PROTECTED]> wrote: > >>> > >>>> The service you are talking to is very unhappy with you. Can you get > >>>> > >> a > >> > >>>> trace of the message traffic? > >>>> > >>>> > >>>>> -----Original Message----- > >>>>> From: Ryan Moquin [mailto:[EMAIL PROTECTED] > >>>>> Sent: Monday, September 10, 2007 7:59 PM > >>>>> To: [email protected] > >>>>> Subject: Can't figure out why I'm getting this error or how to > >>>>> troubleshoot it > >>>>> > >>>>> I've been trying to use the generated files from my WSDL to access > >>>>> > >> an > >> > >>>>> external webservice that uses SSL and authentication. I setup an > >>>>> http-conduit (I was getting the protocol error when I didn't have > >>>>> > >> it > >> > >>>> setup) > >>>> > >>>>> for SSL and now I get the following error, anyone have any ideas > >>>>> > >> what > >> > >>>> I > >>>> > >>>>> can > >>>>> do from here?: > >>>>> > >>>>> javax.xml.ws.soap.SOAPFaultException: Index: 1, Size: 1 > >>>>> at org.apache.cxf.jaxws.JaxWsClientProxy.invoke( > >>>>> JaxWsClientProxy.java:169) > >>>>> at $Proxy101.sendNotification(Unknown Source) > >>>>> at service.NotificationServiceClient.sendNotification( > >>>>> NotificationServiceClient.java:88) > >>>>> at > >>>>> > >> service.NotificationServiceClientTest.testSendNotification( > >> > >>>>> NotificationServiceClientTest.java:62) > >>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > >>>>> > >> Method) > >> > >>>>> at sun.reflect.NativeMethodAccessorImpl.invoke( > >>>>> NativeMethodAccessorImpl.java:39) > >>>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke( > >>>>> DelegatingMethodAccessorImpl.java:25) > >>>>> at java.lang.reflect.Method.invoke(Method.java:585) > >>>>> at > >>>>> > >>>> org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java > >>>> > >>>>> :552) > >>>>> at > >>>>> > >> org.testng.internal.Invoker.invokeMethod(Invoker.java:411) > >> > >>>>> at > >>>>> > >>>> org.testng.internal.Invoker.invokeTestMethods(Invoker.java:785) > >>>> > >>>>> at > >>>>> > >>>> org.testng.internal.TestMethodWorker.run(TestMethodWorker.java > >>>> > >>>>> :114) > >>>>> at org.testng.TestRunner.privateRun(TestRunner.java:693) > >>>>> at org.testng.TestRunner.run(TestRunner.java:574) > >>>>> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:241) > >>>>> at org.testng.SuiteRunner.run(SuiteRunner.java:145) > >>>>> at > >>>>> > >> org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:901) > >> > >>>>> at org.testng.TestNG.runSuitesLocally(TestNG.java:863) > >>>>> at > >>>>> > >>>> org.apache.maven.surefire.testng.TestNGExecutor.executeTestNG( > >>>> > >>>>> TestNGExecutor.java:64) > >>>>> at > >>>>> > >>>> org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute( > >>>> > >>>>> TestNGXmlTestSuite.java:75) > >>>>> at > >>>>> > >> org.apache.maven.surefire.Surefire.run(Surefire.java:129) > >> > >>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > >>>>> > >> Method) > >> > >>>>> at sun.reflect.NativeMethodAccessorImpl.invoke( > >>>>> NativeMethodAccessorImpl.java:39) > >>>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke( > >>>>> DelegatingMethodAccessorImpl.java:25) > >>>>> at java.lang.reflect.Method.invoke(Method.java:585) > >>>>> at > >>>>> > >>>>> > >> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess( > >> > >>>>> SurefireBooter.java:225) > >>>>> at org.apache.maven.surefire.booter.SurefireBooter.run( > >>>>> SurefireBooter.java:139) > >>>>> at > >>>>> > >> org.apache.maven.plugin.surefire.SurefirePlugin.execute( > >> > >>>>> SurefirePlugin.java:376) > >>>>> at > >>>>> > >> org.apache.maven.plugin.DefaultPluginManager.executeMojo( > >> > >>>>> DefaultPluginManager.java:443) > >>>>> at > >>>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals( > >>>>> DefaultLifecycleExecutor.java:539) > >>>>> at > >>>>> > >>>>> > >> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifec > >> > >>>> yc > >>>> > >>>>> le > >>>>> (DefaultLifecycleExecutor.java:480 > >>>>> ) > >>>>> at > >>>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal( > >>>>> DefaultLifecycleExecutor.java:459) > >>>>> at > >>>>> > >>>>> > >> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandle > >> > >>>> Fa > >>>> > >>>>> ilures > >>>>> (DefaultLifecycleExecutor.java > >>>>> :311) > >>>>> at > >>>>> > >>>>> > >> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments > ( > >> > >>>>> DefaultLifecycleExecutor.java:278) > >>>>> at > >>>>> > >>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute( > >>>> > >>>>> DefaultLifecycleExecutor.java:143) > >>>>> at > >>>>> > >>>> org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:334) > >>>> > >>>>> at > >>>>> > >>>> org.apache.maven.DefaultMaven.execute(DefaultMaven.java:125) > >>>> > >>>>> at org.apache.maven.cli.MavenCli.main(MavenCli.java:272) > >>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > >>>>> > >> Method) > >> > >>>>> at sun.reflect.NativeMethodAccessorImpl.invoke( > >>>>> NativeMethodAccessorImpl.java:39) > >>>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke( > >>>>> DelegatingMethodAccessorImpl.java:25) > >>>>> at java.lang.reflect.Method.invoke(Method.java:585) > >>>>> at > >>>>> > >>>> org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java > >>>> > >>>>> :315) > >>>>> at > >>>>> > >> org.codehaus.classworlds.Launcher.launch(Launcher.java:255) > >> > >>>>> at > >>>>> org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java > >>>>> :430) > >>>>> at > >>>>> > >> org.codehaus.classworlds.Launcher.main(Launcher.java:375) > >> > >>>>> Caused by: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 > >>>>> at java.util.ArrayList.RangeCheck(ArrayList.java:546) > >>>>> at java.util.ArrayList.get(ArrayList.java:321) > >>>>> at org.apache.cxf.message.MessageContentsList.get( > >>>>> MessageContentsList.java:76) > >>>>> at > >>>>> > >>>>> > >> > org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleHeaderP > >> > >>>> ar > >>>> > >>>>> t( > >>>>> SoapOutInterceptor.java:179) > >>>>> at > >>>>> > >>>>> > >> > org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.writeSoapEnve > >> > >>>> lo > >>>> > >>>>> peStart > >>>>> (SoapOutInterceptor.java:124) > >>>>> > >>>>> at > >>>>> > >>>>> > >> > org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMessage > >> > >>>> ( > >>>> > >>>>> SoapOutInterceptor.java:76) > >>>>> at > >>>>> > >>>>> > >> > org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMessage > >> > >>>> ( > >>>> > >>>>> SoapOutInterceptor.java:57) > >>>>> 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.frontend.ClientProxy.invokeSync(ClientProxy.java > >>>> > >>>>> :73) > >>>>> at org.apache.cxf.jaxws.JaxWsClientProxy.invoke( > >>>>> JaxWsClientProxy.java:135) > >>>>> ... 45 more > >>>>> > >>>>> my cfx.xml looks like this: > >>>>> > >>>>> <beans xmlns="http://www.springframework.org/schema/beans" > >>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > >>>>> xmlns:sec="http://cxf.apache.org/configuration/security" > >>>>> > >>>>> > >>>> xmlns:http="http://cxf.apache.org/transports/http/configuration" > >>>> > >>>>> xsi:schemaLocation=" > >>>>> http://cxf.apache.org/configuration/security > >>>>> http://cxf.apache.org/schemas/configuration/security.xsd > >>>>> http://cxf.apache.org/transports/http/configuration > >>>>> http://cxf.apache.org/schemas/configuration/http-conf.xsd > >>>>> http://www.springframework.org/schema/beans > >>>>> http://www.springframework.org/schema/beans/spring-beans.xsd"> > >>>>> > >>>>> <http:conduit > >>>>> name="{urn://testnotification}NotificationPort.http-conduit"> > >>>>> <http:authorization> > >>>>> <sec:UserName>testuser</sec:UserName> > >>>>> <sec:Password>testpass</sec:Password> > >>>>> </http:authorization> > >>>>> <http:tlsClientParameters secureSocketProtocol="SSL"> > >>>>> <sec:cipherSuitesFilter> > >>>>> <!-- these filters ensure that a ciphersuite with > >>>>> export-suitable or null encryption is used, > >>>>> but exclude anonymous Diffie-Hellman key change as > >>>>> this is vulnerable to man-in-the-middle attacks --> > >>>>> <sec:include>.*_EXPORT_.*</sec:include> > >>>>> <sec:include>.*_EXPORT1024_.*</sec:include> > >>>>> <sec:include>.*_WITH_DES_.*</sec:include> > >>>>> <sec:include>.*_WITH_NULL_.*</sec:include> > >>>>> <sec:exclude>.*_DH_anon_.*</sec:exclude> > >>>>> </sec:cipherSuitesFilter> > >>>>> </http:tlsClientParameters> > >>>>> </http:conduit> > >>>>> </beans> > >>>>> > >>>>> Thanks! > >>>>> > > > > >
