You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Daniel Kulp <dk...@apache.org> on 2009/05/06 20:39:08 UTC

Re: [cxf 2.2.1] StringIndexOutOfBoundException with external jaxb file


Changing the package would have no affect on the namespaces.   The namespaces 
would still get generated into the annotations and such.   There's still a bug 
in that the code generator shouldn't barf like that, but it really won't solve 
your issue.   I think the only way to supress namespaces would be to write an 
interceptor that would drop them.

Dan


On Mon April 27 2009 12:47:18 pm Valerio Schiavoni wrote:
> I try to customize the result of wsdl2java (in particular: i'd like to
> suppress the namespaces).
> I use this exteranl jaxb file:
>
> <jaxws:bindings wsdlLocation="./proactive.wsdl"
>     xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>     xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
> xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">
>     <jaxws:package></jaxws:package>
> </jaxws:bindings>
>
> And the cxf plugin is configurted like the following:
>
>  <plugin>
>                 <groupId>org.apache.cxf</groupId>
>                 <artifactId>cxf-codegen-plugin
>                 </artifactId>
>                 <version>2.2.1</version>
>                 <executions>
>                     <execution>
>                         <id>generate-sources</id>
>                         <phase>generate-sources</phase>
>                         <configuration>
>                             <sourceRoot>
>                                 ${basedir}/target/generated/src/main/java
>                             </sourceRoot>
>                             <wsdlOptions>
>                                 <wsdlOption>
>                                     <wsdl>
>
> ${basedir}/src/main/resources/wsdl/proactive.wsdl
>                                     </wsdl>
>                                     <extraargs>
>                                         <extraarg>-client
>                                         </extraarg>
>                                         <extraarg>-verbose
>                                         </extraarg>
>                                     </extraargs>
>                                     <bindingFiles>
>                                         <bindingFile>
>
> ${basedir}/src/main/resources/wsdl/mapping.xml
>                                         </bindingFile>
>                                     </bindingFiles>
>                                 </wsdlOption>
>                             </wsdlOptions>
>                         </configuration>
>                         <goals>
>                             <goal>wsdl2java</goal>
>                         </goals>
>                     </execution>
>                 </executions>
>             </plugin>
>
> I get the  stacktrace below. Is this expected?
> If so, how can I do suppress those namespaces?
>
> org.apache.maven.lifecycle.LifecycleExecutionException:
> java.lang.StringIndexOutOfBoundsException: String index out of range:
> -1
> 	at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLif
>ecycleExecutor.java:564) at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycl
>e(DefaultLifecycleExecutor.java:480) at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLife
>cycleExecutor.java:459) at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFai
>lures(DefaultLifecycleExecutor.java:311) at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(Def
>aultLifecycleExecutor.java:278) at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycl
>eExecutor.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:3
>9) at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
>l.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: org.apache.maven.plugin.MojoExecutionException:
> java.lang.StringIndexOutOfBoundsException: String index out of range:
> -1
> 	at
> org.apache.cxf.maven_plugin.WSDL2JavaMojo.processWsdl(WSDL2JavaMojo.java:36
>3) at
> org.apache.cxf.maven_plugin.WSDL2JavaMojo.execute(WSDL2JavaMojo.java:257)
> at
> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManag
>er.java:443) at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLif
>ecycleExecutor.java:539) ... 16 more
> Caused by: org.apache.cxf.tools.common.ToolException:
> java.lang.StringIndexOutOfBoundsException: String index out of range:
> -1
> 	at
> org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer
>.java:260) at
> org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:83)
> at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:103) at
> org.apache.cxf.maven_plugin.WSDL2JavaMojo.processWsdl(WSDL2JavaMojo.java:36
>0) ... 19 more
> Caused by: java.lang.StringIndexOutOfBoundsException: String index out
> of range: -1
> 	at java.lang.String.substring(String.java:1768)
> 	at
> org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.addedToClassCo
>llector(JAXBDataBinding.java:488) at
> org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.addedEnumClass
>ToCollector(JAXBDataBinding.java:477) at
> org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAX
>BDataBinding.java:333) at
> org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaCon
>tainer.java:557) at
> org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaConta
>iner.java:208) at
> org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer
>.java:127) at
> org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer
>.java:252) ... 22 more
>
>
> Thanks,
> Valerio

-- 
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog