UTF-8 でファイルを生成しない以下の POM があります。
WSDL ファイルには XSD ファイルが含まれており、これらのファイルはé, è, à
.
WSDL および XSD ファイルは、Notepad++ に従って、BOM なしで UTF-8 で正しくエンコードされます。
Java ファイルを生成しようとすると、これらの Java ファイルは DOS/Windows 文字セットで生成されます。これも Notepad++ に従っています。
私たちのプロジェクトはすべて UTF-8 を使用しており、次のエラーのために Windows の開発者が Java クラスをローカルでコンパイルできないため、Java ファイルを UTF-8 で生成する必要があります: error: unmappable character for encoding UTF-8
.
これに関する CXFのドキュメントを読み、JAXB の 2 つの依存関係をプラグインに直接追加するなど、すべてを説明どおりに作成しました。それでもうまくいきません。
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>