У меня есть этот POM ниже, который не генерирует файлы в UTF-8.
Файлы WSDL содержат файлы XSD, которые, в свою очередь, используют символы с французским акцентом, такие как é, è, à
и т. Д. Я не имею никакого отношения к WSDL, поскольку я должен использовать их в том виде, в каком они поставляются.
Согласно Notepad ++, файлы WSDL и XSD правильно закодированы в UTF-8 без спецификации.
Когда я пытаюсь сгенерировать файлы java, эти файлы java создаются в кодировке DOS / Windows, опять же согласно Notepad ++.
Я хочу, чтобы файлы java создавались в UTF-8, потому что все наши проекты используют UTF-8, а классы java не могут быть скомпилированы локально нашими разработчиками в Windows из-за следующей ошибки: error: unmappable character for encoding UTF-8
.
Я прочитал документацию CXF о this и сделал все, как описано, включая добавление двух зависимостей 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>