[
https://issues.apache.org/jira/browse/CXF-6420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15673622#comment-15673622
]
ericv. commented on CXF-6420:
-----------------------------
could you explain how to retrieve the wsdl with maven dependencies ? It seems
that what you did imply that <type> must be "serviceName.wsdl" instead of
"wsdl", unfortunately it does not work. On my Nexus 3 server I see that the
type is "wsdl" only. The filename is ok (serviceName.wsdl). So it is not
possible to retrieve the WSDL properly using maven coordinates.
> Maven cxf-java2ws-plugin copies to the maven repository only the last wsdl of
> multiple services/executions - overwrites the others
> ----------------------------------------------------------------------------------------------------------------------------------
>
> Key: CXF-6420
> URL: https://issues.apache.org/jira/browse/CXF-6420
> Project: CXF
> Issue Type: Improvement
> Components: Build system
> Affects Versions: 3.1.0
> Environment: in all environments
> Reporter: Andreas Panagiotidis
> Assignee: Daniel Kulp
> Labels: easyfix
> Fix For: 3.1.1, 3.0.6
>
> Attachments: test-cxf-with-deploy-plugin.zip
>
> Original Estimate: 6h
> Remaining Estimate: 6h
>
> I use the Maven *cxf-java2ws-plugin:java2ws* to generate WSDLs from
> WebService Java classes.
> For each Service, I create an execution of the plugin, as suggest in this
> link
> http://mail-archives.apache.org/mod_mbox/cxf-users/201003.mbox/%[email protected]%3E
> . I have not found any other option to generate multiple services in a
> single project.
> By default in the latest version of cxf-java2ws-plugin the configuration
> parameter "attachWsdl" is true.
> That means that the plugin generates a WSDL for *each* execution.
> Unfortunately, the plugin during the maven install phase tries to attache
> each generated WSDL to the local repository in the maven repository with the
> name:
> {code}
> maven-local-repository\[groupId]\[version]\[artifactId]-[version].wsdl
> {code}
> The naming of the file is the reason that maven does not copy all the WSDLs .
> Only the one of the first execution of the plugin get's copied. The plugin
> checks if the file exists already and it skips the others (which are named
> with the same name).
> Equally important, Maven version 3.3.3 does not allow to release a Maven
> project. (Maven 3.0.5 had a different process)
> The maven deploy plugin during the release uploads to the enterprise
> repository the first generated WSDL successfully. But then it tries to upload
> the WSDL from second execution, but that already exists in the Maven
> Enterprise Repository (the WSDLs have the same name). Thus, the project
> cannot upload the WSDLs and it cannot also get released.
> We may set the attachWsdl option to false, but this is not a solution, as for
> some the goal is to *deploy* the WSDL files.
> I attach a zip with a maven project that demonstrates the issue.
> You see that the plugin copies in the local repository only the last WSDL
> file, instead of generating once for each execution.
> {code}
> [INFO]
> [INFO] --- maven-install-plugin:2.3.1:install (default-install) @
> test-cxf-with-deploy-plugin ---
> [INFO] Installing
> C:\test-cxf-with-deploy-plugin\target\test-cxf-with-deploy-plugin-1.0.jar to
> C:\\m3-repository\ch\apanag\test-cxf-with-deploy-plugin\1.0\test-cxf-with-deploy-plugin-1.0.jar
> [INFO] Installing C:\test-cxf-with-deploy-plugin\pom.xml to
> C:\eplatform\lib\m3-repository\ch\apanag\test-cxf-with-deploy-plugin\1.0\test-cxf-with-deploy-plugin-1.0.pom
> [INFO] Installing
> C:\test-cxf-with-deploy-plugin\target\generated\wsdl\MyService.wsdl to
> C:\m3-repository\ch\apanag\test-cxf-with-deploy-plugin\1.0\test-cxf-with-deploy-plugin-1.0.wsdl
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO]
> ------------------------------------------------------------------------
> {code}
> Deploying a release version to a Maven Enterprise Repository throws an HTML
> 400 error, as normally a release repository does not allow the redeployment
> of file.
> In the end of the day, the plugin does not allow to copy to a repository each
> WSDL. This is against to what it promotes and what its goal was.
> A simple change is the solution. Add in the name of each generated WSDL the
> name of the Service that it represents too.
> {code}
> maven-local-repository\[groupId]\[version]\[artifactId]-[version].[service-name].wsdl
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)