如何更改wsimport生成的文件的编码?

时间:2009-12-10 14:57:07

标签: java jax-ws

我正在使用JAX-WS的wsimport ant任务来生成基于某些wsdl的源。

但是,这些生成的源似乎都是UTF-8编码的。有没有办法改变wsimport任务产生的文件的编码?

5 个答案:

答案 0 :(得分:3)

这有点记录错误。 WSImport使用XJC(来自JAXB)来创建Java文件,文档here表示更改XML文件中的字符编码应该足够了(尽管我没有尝试过)。如果您满足于手动运行JAXB,那么您也可以通过JAXBContext上的JAXB_ENCODING属性进行配置。

答案 1 :(得分:2)

我用我的注册帐户发帖:

将环境变量JAVA_TOOL_OPTIONS设置为 - Dfile.encoding=UTF8

Windows中的示例:

set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8

c:>wsimport -keep ... file.wsdl

选择JAVA_TOOL_OPTIONS:-Dfile.encoding = UTF8 解析WSDL ......

生成代码......

答案 2 :(得分:0)

将环境变量设置为JAVA_TOOL_OPTIONS-Dfile.encoding=UTF8

Windows中终端的示例:

set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8

c:>wsimport -keep ... file.wsdl

Picked up `JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8`
parsing WSDL...

Generating code...

答案 3 :(得分:0)

JDK 8中的

wsimport 2.2.9具有-encoding选项,可用于此目的。例如:

wsimport -keep -s c:\path\to\src c:\wsdl\myService.wsdl -encoding cp1252

在wsimport 2.1.6(JDK 6)或2.2.4-b01(JDK 7)中都找不到此选项。

答案 4 :(得分:0)

如果您正在使用gradle通过ant任务使用wsimport,则可以简单地使用encoding属性在wsimport中指定所需的编码。我使用wsimport版本 2.2.7

进行了测试
configurations {
   schemaGenerationBeans
}

dependencies {
   // dependencies per compilar schemas
   schemaGenerationBeans 'com.sun.xml.bind:jaxb-xjc:2.2.7'
   schemaGenerationBeans 'com.sun.xml.ws:jaxws-ri:2.2.7'
   schemaGenerationBeans 'com.sun.xml.ws:jaxws-tools:2.2.7'
}

task generateJaxb {

    ant.taskdef(name: 'wsimport', classname: 'com.sun.tools.ws.ant.WsImport', classpath: configurations.schemaGenerationBeans.asPath)

    ant.wsimport(wsdl: "$projectDir/src/main/resources/somepath/YOUR_WSDL.wsdl",
            wsdlLocation: "/somepath/YOUR_WSDL.wsdl", // relative path for generated classes
            package: 'org.your.package.xsd',
            xnocompile: 'true',
            xendorsed: 'true',
            sourcedestdir: "$projectDir/src/main/java/",
            encoding : 'utf-8' // DESIRED ENCODING PROPERTY!
    )
}