我正在使用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安装期间进行编译?
答案 0 :(得分:2)
如果将“-xjc-npa”标志添加到wsdl2java,它应该为您填写所有命名空间属性,而不是生成package-info.java。如果确实是问题,那可能会解决问题。也就是说,如果它仍然生成namespace =“”属性,这可能意味着wsdl中的模式是错误的,并且其中没有elementFormDefault =“qualified”属性。