如何从wsimport.exe更改生成的代码的注释语言

时间:2017-09-15 09:03:05

标签: java wsdl

我想使用.wsdl%JAVA_HOME%/bin/wsimport.exe - 文件导入到我的Java项目中。一切都很好,除了评论的语言是德语,但我希望它是英语。如何更改wsimport.exe使用的语言?

4 个答案:

答案 0 :(得分:1)

不,这个问题的作者没有错。似乎wsimport从操作系统中获取语言。在我们的项目中,我们的机器具有德语和英语设置。代码是相应生成的:

英文机器:

/**
 * <p>Java class for abstractRequest complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.

德国机器:

/**
 * <p>Java-Klasse für abstractRequest complex type.
 * 
  * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.

正如这个问题的回答中所提到的How to change javadoc comments language when generate java from wsdl with CXF wsdl2java? 语言可以在命令行中设置,如

-Duser.language=en

答案 1 :(得分:0)

我觉得你错了。 Javadoc内容只不过是Java源代码中的汇编信息。

当您的Javadoc HTML包含德语内容时 - 因为人们已经将德语文本写入了java源代码。你不能只改变导入过程 - 你必须找到一个德语文本翻译成英文的人!

答案 2 :(得分:0)

对于 Oracle JDK 8 ,可以直接调用WsImport类,并通过将Locale设置为所需的语言来配置生成的注释的语言( Web服务工具已在Java 11中删除。

Locale.setDefault(new Locale("en"));
List<String> args = new Arraylist<>();
// add other options
args.add(wsdlFile.getAbsolutePath());
com.sun.tools.internal.ws.WsImport.doMain(args.toArray(new String[0]));

答案 3 :(得分:0)

使用Apache CXF的另一种替代方法,希望可以为将来提供更多证明:

Locale.setDefault(new Locale("en"));
// options: https://cxf.apache.org/docs/wsdl-to-java.html
List<String> args = new ArrayList<>();
args.add("-suppress-generated-date");
args.add("-d");
args.add(new File("src/main/java").getAbsolutePath());
args.add("-p");
args.add("com.company.targetpackage");
args.add(new File("sample.wsdl").getAbsolutePath());

WSDLToJava wsdlToJava = new WSDLToJava();
wsdlToJava.setArguments(args.toArray(new String[0]));
wsdlToJava.run(new ToolContext());

使用以下Maven依赖项:

<dependency>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-codegen-plugin</artifactId>
  <version>3.3.2</version>
</dependency>
<dependency>
  <groupId>com.sun.xml.bind</groupId>
  <artifactId>jaxb-impl</artifactId>
  <version>2.3.2</version>
</dependency>