CXF WSDL2Java -p 有无效字符异常
CXF WSDL2Java -p has invalid character exception
我坚持使用 CXF wsdlToJava 生成 java 类 wsdl,因为我们有更新版本的 WSDL,所以我想像以前的开发人员一样使用 CXF。
我在终端中执行以下命令后出现错误:
sudo ~/opt/apache-cxf-3.1.12/bin/wsdl2java -verbose -d ./src-gen -p http://www.text.nl/text/UPPERCASETEXT/003 -b ./src/META-INF/bindings-text.xml -validate ./scr/META-INF/Text_UPPERCASETEXT003.wsdl
执行后出现以下错误:
org.apache.cxf.tools.common.ToolException: org.apache.cxf.tools.common.toolspec.parser.BadUsageException: -p has invalid character!
at org.apache.cxf.tools.common.toolspec.AbstractToolContainer.execute(AbstractToolContainer.java:180)
at org.apache.cxf.tools.common.AbstractCXFToolContainer.execute(AbstractCXFToolContainer.java:69)
at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:413)
at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:105)
at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113)
at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86)
at org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:185)
Caused by: org.apache.cxf.tools.common.toolspec.parser.BadUsageException: -p has invalid character!
他们在谈论什么角色...?
提前致谢!
这里的问题正如-p部分所述,即-p http://www.text.nl/text/UPPERCASETEXT/003
.
网页上提供了有关 wsdl2java 工具的文档:
https://cxf.apache.org/docs/wsdl-to-java.html
-p选项的语法是:
-p [ wsdl-namespace= ] PackageName
对它的描述:
指定零个或多个包名称以用于生成的代码。可选择指定 WSDL 命名空间到包名称映射。
实际上,这意味着您应该指定一个 Java 包用于所有生成的代码,例如
-p nl.text.text.uppercase
,
或者你应该指定一个命名空间 (http://www.text.nl/text/UPPERCASETEXT/003) 到对应的 Java 包 (nl.text.text.uppercase) 的映射,比如
-p http://www.text.nl/text/UPPERCASETEXT/003=nl.text.text.uppercase
当然,如果需要将多个命名空间映射到多个包,可以使用多个-p选项指定,如:
-p http://www.text.nl/text/UPPERCASETEXT/003=nl.text.text.uppercase -p http://www.text.nl/text/LOWERCASETEXT/003=nl.text.text.lowercase
我坚持使用 CXF wsdlToJava 生成 java 类 wsdl,因为我们有更新版本的 WSDL,所以我想像以前的开发人员一样使用 CXF。
我在终端中执行以下命令后出现错误: sudo ~/opt/apache-cxf-3.1.12/bin/wsdl2java -verbose -d ./src-gen -p http://www.text.nl/text/UPPERCASETEXT/003 -b ./src/META-INF/bindings-text.xml -validate ./scr/META-INF/Text_UPPERCASETEXT003.wsdl
执行后出现以下错误:
org.apache.cxf.tools.common.ToolException: org.apache.cxf.tools.common.toolspec.parser.BadUsageException: -p has invalid character!
at org.apache.cxf.tools.common.toolspec.AbstractToolContainer.execute(AbstractToolContainer.java:180)
at org.apache.cxf.tools.common.AbstractCXFToolContainer.execute(AbstractCXFToolContainer.java:69)
at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:413)
at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:105)
at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113)
at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86)
at org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:185)
Caused by: org.apache.cxf.tools.common.toolspec.parser.BadUsageException: -p has invalid character!
他们在谈论什么角色...?
提前致谢!
这里的问题正如-p部分所述,即-p http://www.text.nl/text/UPPERCASETEXT/003
.
网页上提供了有关 wsdl2java 工具的文档:
https://cxf.apache.org/docs/wsdl-to-java.html
-p选项的语法是:
-p [ wsdl-namespace= ] PackageName
对它的描述:
指定零个或多个包名称以用于生成的代码。可选择指定 WSDL 命名空间到包名称映射。
实际上,这意味着您应该指定一个 Java 包用于所有生成的代码,例如
-p nl.text.text.uppercase
,
或者你应该指定一个命名空间 (http://www.text.nl/text/UPPERCASETEXT/003) 到对应的 Java 包 (nl.text.text.uppercase) 的映射,比如
-p http://www.text.nl/text/UPPERCASETEXT/003=nl.text.text.uppercase
当然,如果需要将多个命名空间映射到多个包,可以使用多个-p选项指定,如:
-p http://www.text.nl/text/UPPERCASETEXT/003=nl.text.text.uppercase -p http://www.text.nl/text/LOWERCASETEXT/003=nl.text.text.lowercase