이 POM은 UTF-8로 파일을 생성하지 않습니다.cxf-codegen-plugin이 UTF-8 호환 파일을 생성하지 않습니다.
WSDL 파일에는 é, è, à
등의 프랑스어로 강조 표시된 문자가 사용되는 XSD 파일이 있습니다. WSDL에는 배달 된 그대로 사용해야하므로 사용할 수 없습니다.
메모장 + +에 따르면 WSDL 및 XSD 파일은 BOM이없는 UTF-8로 올바르게 인코딩됩니다.
Java 파일을 생성하려고하면 해당 Java 파일은 메모장 ++에 따라 DOS/Windows charset에서 다시 생성됩니다.
모든 프로젝트가 UTF-8을 사용하고 java 클래스가 다음 오류로 인해 Windows의 개발 자에게 로컬로 컴파일 될 수 없기 때문에 Java 파일이 UTF-8로 생성되기를 바랍니다. error: unmappable character for encoding UTF-8
.
나는 이것에 관해 documentation of 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>