package org.jeecg.modules.mdc.util; import org.apache.cxf.Bus; import org.apache.cxf.bus.CXFBusFactory; import org.apache.cxf.endpoint.EndpointImplFactory; import org.apache.cxf.endpoint.dynamic.DynamicClientFactory; import org.apache.cxf.jaxws.support.JaxWsEndpointImplFactory; import java.io.File; import java.util.List; /** * @author Lius * @date 2024/6/14 11:07 * 注:解决此(错误:编码GBK的不可映射字符)问题 */ public class JaxWsDynamicClientFactory extends DynamicClientFactory { protected JaxWsDynamicClientFactory(Bus bus) { super(bus); } @Override protected EndpointImplFactory getEndpointImplFactory() { return JaxWsEndpointImplFactory.getSingleton(); } protected boolean allowWrapperOps() { return true; } /** * Create a new instance using a specific Bus. * * @param b the Bus to use in subsequent operations with the * instance * @return the new instance */ public static JaxWsDynamicClientFactory newInstance(Bus b) { return new JaxWsDynamicClientFactory(b); } /** * Create a new instance using a default Bus. * * @return the new instance */ public static JaxWsDynamicClientFactory newInstance() { Bus bus = CXFBusFactory.getThreadDefaultBus(); return new JaxWsDynamicClientFactory(bus); } /** * 覆写父类的该方法
* 注:解决此(错误:编码GBK的不可映射字符)问题 * * @return */ @Override protected boolean compileJavaSrc(String classPath, List srcList, String dest) { org.apache.cxf.common.util.Compiler javaCompiler = new org.apache.cxf.common.util.Compiler(); // 设置编译编码格式(此处为新增代码) javaCompiler.setEncoding("UTF-8"); javaCompiler.setClassPath(classPath); javaCompiler.setOutputDir(dest); javaCompiler.setTarget("1.6"); return javaCompiler.compileFiles(srcList); } }