You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "maomaode (JIRA)" <ji...@apache.org> on 2007/09/12 13:22:32 UTC

[jira] Resolved: (CXF-993) CXF doesn't always honor the use of optional soap headers

     [ https://issues.apache.org/jira/browse/CXF-993?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

maomaode resolved CXF-993.
--------------------------

       Resolution: Fixed
    Fix Version/s: 2.1

> CXF doesn't always honor the use of optional soap headers
> ---------------------------------------------------------
>
>                 Key: CXF-993
>                 URL: https://issues.apache.org/jira/browse/CXF-993
>             Project: CXF
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.1
>         Environment: Windows XP, CXF 2.0.1, Maven2
>            Reporter: Ryan Moquin
>            Assignee: maomaode
>            Priority: Minor
>             Fix For: 2.1
>
>         Attachments: messaging.wsdl
>
>
> When I use the attached WSDL to generate Java class and then call the sendNotification method, I will always get this exception:
> Sep 11, 2007 11:21:05 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> 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.handleHeaderPart(SoapOutInterceptor.java:179)
>         at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.writeSoapEnvelopeStart(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)
>         at $Proxy72.sendNotification(Unknown Source)
>         at testnotification.NotificationServiceClient.sendNotification(NotificationServiceClient.java:48)
>         at testnotification.NotificationServiceClientTest.testSendNotification(NotificationServiceClientTest.java:32)
>         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.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480
> )
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(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)
> Unless I use the -exsh true option in the wsdl2java plugin for Maven2.  Since soap headers are optional, CXF should never require them to be there.
> To reproduce this issue, there is nothing special to do other than use wsdl2java to generate the java classes and then call the single webservice method.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.