我在下面有这个 POM,它不会生成 UTF-8 格式的文件。
WSDL 文件包含 XSD 文件,这些文件又使用法语重音字符é, è, à
,例如 等。我对 WSDL 无能为力,因为我必须在交付时使用它们。
根据 Notepad++,WSDL 和 XSD 文件在没有 BOM 的情况下以 UTF-8 正确编码。
当我尝试生成 java 文件时,这些 java 文件是在 DOS/Windows 字符集中生成的,同样根据 Notepad++。
我希望以 UTF-8 生成 java 文件,因为我们所有的项目都使用 UTF-8,并且由于以下错误,我们的开发人员无法在 Windows 上本地编译 java 类:error: unmappable character for encoding UTF-8
.
我阅读了有关此的 CXF 文档,并按照描述进行了所有操作,包括直接在插件中添加 JAXB 的两个依赖项。然而它不起作用。
我正在使用 CXF 版本 2.6.10(在 2.6.1 之后发布,其中包括以特定编码生成文件的选项)。
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated-sources/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/webapp/WEB-INF/wsdl/service_v1.wsdl</wsdl>
<bindingFiles>
<bindingFile>${basedir}/src/main/xjb/bindings.xml</bindingFile>
</bindingFiles>
</wsdlOption>
<wsdlOption>
<wsdl>${basedir}/src/main/webapp/WEB-INF/wsdl/service_internals_v1.wsdl</wsdl>
<bindingFiles>
<bindingFile>${basedir}/src/main/xjb/internals-bindings.xml</bindingFile>
</bindingFiles>
</wsdlOption>
</wsdlOptions>
<extraargs>
<extraarg>-validate</extraarg>
<extraarg>-verbose</extraarg>
<extraarg>-p</extraarg>
<extraarg>be.mycompany</extraarg>
<extraarg>-exceptionSuper java.lang.Exception</extraarg>
</extraargs>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-xjc</artifactId>
<version>2.2</version>
</dependency>
</dependencies>
</plugin>