1

我正在使用 WebLogic JWSC ant 任务从现有的 wsdl 生成 WebLogic Web 服务工件。JWSC 生成所有需要的文件并将它们归档在一个 ear 文件中。

由于我不希望 JWSC 任务创建新的 application.xml,因此我通过指向现有 application.xml 的位置来使用 JWSC 任务的 applicationXml 属性。然后 JWSC 任务通过成功添加新<module>标签来更新 application.xml。在模块标签内有<web-uri>标签。web-uri定义 WAR 文件的位置。到目前为止,一切都很好。

如果我将explode 属性设置为true,则该任务不会创建ear 文件,而是将所有必需的文件放在一个目录中。JWSC 任务也更新了指定的 application.xml,但是这一次它将扩展目录的名称放在没有 .war 扩展名的 web-uri 标记中,尽管在这里放一个非 war 文件名是错误的。

正确的格式应该是这样的

<module>
  <web>
    <web-uri>petStore.war</web-uri>
    <context-root>store</context-root>
  </web>
</module>

如果您没有意识到这种情况,WebLogic 将找不到指定的 war 文件(没有 .war 扩展名)

有谁知道为什么 JWSC 使用错误的 web-uri 更新 application.xml ?

4

1 回答 1

2

我们可以将 application.xml 放在某个地方,当我们创建 app.xml 时,我们将在property appxml = "${path-original-application.xml}"下面给出片段

<target name="dist-ear" depends="clean-build-webservices">
    <delete file="${build.dir}/META-INF/application.xml"/>
    <copy todir="${build.dir}/META-INF"  overwrite="true">
        <fileset dir="${webservices.resource.dir}">
            <include name="weblogic-application.xml"/>
        </fileset>
    </copy>
    <ear destfile="${dist.dir}/${webservice.name}.ear" appxml="${viwebservices.appxml.location}">
        <fileset dir="${build.dir}" includes="*.war"/>
        <zipfileset dir="${webservices.src.dir}/jdbc" prefix="jdbc"/>
        <metainf dir="${build.dir}/META-INF"/>
    </ear>
</target>
于 2014-01-31T15:07:06.307 回答