I am trying to have two execution blocks inside the maven plugin with separate configurations, but maven seems to ignore the configuration blocks inside the executable blocks and only use the configuration block outside the execution block.
So, to narrow down the problem, I took the working plugin section and moved the working configuration a little to the inside of the execution unit, and then it stopped working (wsdl is still picking up (actually both), but it's just because it sits in the directory by By default, the binding file and no other configuration are selected when the configuration section is inside the execution unit, and in fact it should not even know about the second wsdl, since I did not specify anything):
<build> <pluginManagement> <plugins> <plugin> <groupId>org.jvnet.jax-ws-commons</groupId> <artifactId>jaxws-maven-plugin</artifactId> <version>2.1</version> <executions> <execution> <id>wsdla</id> <phase>generate-sources</phase> <configuration> <packageName>com.mycee.project.model</packageName> <sourceDestDir>src/main/java</sourceDestDir> <wsdlFiles> <wsdlFile> ${basedir}/src/wsdl/a.wsdl </wsdlFile> </wsdlFiles> <bindingDirectory> ${basedir}/src/wsdl/binding </bindingDirectory> <verbose>true</verbose> </configuration> <goals> <goal>wsimport</goal> </goals> </execution> </executions> </plugin> </plugins> </pluginManagement> </build>
Is this a maven problem that I need to solve or a jaxws problem, and how to solve it?
If I change the version to 2.3, I get the following error:
[ERROR] Failed to execute the target org.jvnet.jax-ws-commons: jaxws-maven-plugin: 2.3: wsimport (default-cli) in the mycee-project project: Run the default-cli of the target org.jvnet. jax-ws-commons: jaxws-maven-plugin: 2.3: wsimport failed: Row index out of range: -1 → [Help 1]
mvn clean jaxws works: wsimport -X I can see in the debug output that it uses the default values:
[DEBUG] ----------------------------------------------------------------------- [DEBUG] Goal: org.jvnet.jax-ws-commons:jaxws-maven-plugin:2.3:wsimport (default-cli) [DEBUG] Style: Regular [DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?> <configuration> <bindingDirectory default-value="${basedir}/src/jaxws"/> <destDir default-value="${project.build.outputDirectory}"/> <encoding>${project.build.sourceEncoding}</encoding> <extension default-value="false"/> <genJWS default-value="false"/> <implDestDir default-value="${project.build.sourceDirectory}"/> <keep default-value="true"/> <localRepository default-value="${localRepository}"/> <pluginArtifactMap>${plugin.artifactMap}</pluginArtifactMap> <quiet default-value="false"/> <remoteRepositories default-value="${project.pluginArtifactRepositories}"/> <settings>${settings}</settings> <sourceDestDir default-value="${project.build.directory}/generated-sources/wsimport"/> <staleFile default-value="${project.build.directory}/jaxws/stale"/> <verbose default-value="false"/> <wsdlDirectory default-value="${basedir}/src/wsdl"/> <xadditionalHeaders default-value="false"/> <xdebug default-value="false"/> <xdisableAuthenticator default-value="false"/> <xdisableSSLHostnameVerification default-value="false"/> <xnoAddressingDataBinding default-value="false"/> <xnocompile default-value="true"/> <xuseBaseResourceAndURLToLoadWSDL default-value="false"/> <project default-value="${project}"/> </configuration> [DEBUG] =======================================================================
Debug output for error out of range:
[ERROR] Failed to execute goal org.jvnet.jax-ws-commons:jaxws-maven-plugin:2.3:wsimport (default-cli) on project mycee-project: Execution default-cli of goal org.jvnet.jax-ws-commons:jaxws-maven-plugin:2.3:wsimport failed: String index out of range: -1 -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.jvnet.jax-ws-commons:jaxws-maven-plugin:2.3:wsimport (default-cli) on project mycee-project: Execution default-cli of goal org.jvnet.jax-ws-c ommons:jaxws-maven-plugin:2.3:wsimport failed: String index out of range: -1 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal org.jvnet.jax-ws-commons:jaxws-maven-plugin:2.3:wsimport failed: String index out of range: -1 at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) ... 19 more Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:872) at java.lang.StringBuilder.substring(StringBuilder.java:72) at org.jvnet.jax_ws_commons.jaxws.AbstractJaxwsMojo.getCP(AbstractJaxwsMojo.java:484) at org.jvnet.jax_ws_commons.jaxws.AbstractJaxwsMojo.exec(AbstractJaxwsMojo.java:359) at org.jvnet.jax_ws_commons.jaxws.WsImportMojo.processLocalWsdlFiles(WsImportMojo.java:319) at org.jvnet.jax_ws_commons.jaxws.WsImportMojo.execute(WsImportMojo.java:283) at org.jvnet.jax_ws_commons.jaxws.MainWsImportMojo.execute(MainWsImportMojo.java:50) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) ... 20 more [ERROR] [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
Full pump as requested:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycee</groupId> <artifactId>mycee-project</artifactId> <version>0.0.1</version> <packaging>jar</packaging> <name>mycee</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <slf4j.version>1.7.2</slf4j.version> </properties> <repositories> </repositories> <pluginRepositories> </pluginRepositories> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> <dependency> <groupId>javax.xml</groupId> <artifactId>webservices-api</artifactId> <version>2.0.1</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-xjc</artifactId> <version>2.2.7</version> </dependency> <dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws-rt</artifactId> <version>2.2.8</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency> </dependencies> <build> <pluginManagement> <plugins> <plugin> <groupId>org.jvnet.jax-ws-commons</groupId> <artifactId>jaxws-maven-plugin</artifactId> <version>2.1</version> <executions> <execution> <id>basic</id> <phase>generate-sources</phase> <configuration> <packageName>com.mycee.project.model</packageName> <sourceDestDir>src/main/java</sourceDestDir> <wsdlFiles> <wsdlFile> ${basedir}/src/wsdl/wsdla.wsdl </wsdlFile> </wsdlFiles> <bindingDirectory> ${basedir}/src/jaxws/binding </bindingDirectory> <verbose>true</verbose> <target>2.1</target> </configuration> <goals> <goal>wsimport</goal> </goals> </execution> </executions> </plugin> </plugins> </pluginManagement> </build> </project>