Hi Ryan,

I just tested your wsdl with the latest CXF using the wsdl2java to generate both client and server code.
It is "wsdl2java -all -exsh true wsdlname".
They work fine to me. Here is the client out going message:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
<soap:Header>
<AuthCredentials xmlns="urn://testnotification">
<username>userName</username>
<password>password</password>
</AuthCredentials>
</soap:Header>
<soap:Body>
<parameters xmlns:ns2="urn://testnotification">hell world </parameters></soap:Body></soap:Envelope>
Can I know you CXF version? Maybe you need to update it :)

Willem.

Ryan Moquin wrote:
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!


Reply via email to