【问题标题】:WSDL wsimport lower upper case issueWSDL wsimport 小写大写问题
【发布时间】:2015-09-17 18:40:52
【问题描述】:

有一个由第三方 Web 服务发送的 WSDL 文件。

早在 2 月份,我的队友将 WSDL 转换为 java(不确定他们使用的是哪个工具,因为他们不再在这里了)。我们的大型项目就是在此基础上构建的。

最近 Web 服务方更新了 WSDL。我尝试使用 wsimport 转换新的 WSDL。现在的问题是,由于包名的变化(从大写到小写),那些转换后的 java 类不再与代码库兼容。

例如,import gov.services.food.api.DataCollection.Extensions.CaseClient 现在更改为 gov.services.food.api.datacollection.extensions.CaseClient

我的问题是:

WSDL 2 Java 转换工具的选择是否会导致这种大小写变化甚至其他数据结构的变化?

提前谢谢你。

【问题讨论】:

  • 小写的包名可能更好,因为它符合命名标准。通常生成的代码包括在cmets中生成它的工具,我认为这些变化很可能是由使用不同的工具引起的。
  • 我同意我们应该遵循命名约定。但是,由于当时在我的应用程序中生成并广泛使用了大写的包版本。现在改变它们有点冒险。而且似乎我只能使用'wsimport',因为不同的转换工具会生成不同的包结构,最终也会改变代码库中的所有包。
  • Web 服务提供商是否有可能从他们的端更改了他们的源代码,但给我们发送了一个不匹配的 WSDL?
  • 我的意思是“不匹配”只是大小写不匹配。

标签: java wsdl converter uppercase lowercase


【解决方案1】:

确认!

不同转换器的选择确实会影响java代码的结果。对于同一个转换工具,你传入的不同选项也会影响结果。

在我的特殊情况下,我使用了“ant”构建工具。

我的 build.xml 中的核心部分是:

<target name="wsdl2java">
    <java classname="org.apache.axis.wsdl.WSDL2Java" classpathref="DSSClient.classpath" failonerror="true" fork="true">
        <arg value="${wsdl.url}/DEX_august_2015.wsdl" />
        <arg line="-v -D -a" />
        <arg line="-o ${wsdl.url}/generated" />
        <arg line="-O -1" />
    </java>
</target>

当然还要结合 WSDL2Java 所需的必要 jar。

这应该创建带有大写包名的 java 代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多