如何修改生成的文件,使用cxf-codegen插件创建然后编译?

时间:2013-07-31 12:11:06

标签: java maven maven-2 cxf

我正在使用cxf-codegen maven插件。我第一次安装mvn时,它生成了一组文件,它们被放置在target / generated-sources / cxf文件夹中,所有生成的文件都在编译和打包后生成罐子由maven。

现在我发现由于某种原因,在创建其余响应时,不会从包--info.java中获取namespace属性。所以我的服务器甩了一个错误说

 javax.xml.bind.UnmarshalException:
 unexpected element (uri:"", local:"com.collabnet.teamforge.ia.types.GetConfigurationParametersResponse"). 
Expected elements are 
\lt{http://www.collab.net/teamforge/integratedapp}CreateProjectConfigurationRequest\gt,
\lt{http://www.collab.net/teamforge/integratedapp}GetConfigurationParametersRequest\gt,
\lt{http://www.collab.net/teamforge/integratedapp}GetConfigurationParametersResponse\gt,
\lt{http://www.collab.net/teamforge/integratedapp}GetPageComponentParametersRequest> 

所以我计划做的是,将生成的文件中的namespace属性(GetConfigurationParametersResponse.java)设置为

@XmlRootElement(name =“GetConfigurationParametersResponse”,namespace =“http:// ...”)

。目前我做了改变并做了maven安装,但似乎没有任何事情发生。这就是maven install忽略了生成文件的变化。它没有被编译。

所以我的问题是

如何在生成的文件中进行此更改以反映并在maven安装期间进行编译?

1 个答案:

答案 0 :(得分:2)

如果将“-xjc-npa”标志添加到wsdl2java,它应该为您填写所有命名空间属性,而不是生成package-info.java。如果确实是问题,那可能会解决问题。也就是说,如果它仍然生成namespace =“”属性,这可能意味着wsdl中的模式是错误的,并且其中没有elementFormDefault =“qualified”属性。