JWSC ant任务,<module>元素的explode属性设置为true </module>

时间:2012-09-21 22:39:27

标签: web-services ant weblogic jax-rpc

我正在使用WebLogic JWSC ant任务从现有wsdl生成WebLogic Web Service工件。 JWSC生成所有必需的文件并将它们存档在ear文件中。

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

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

正确的格式应该是那样的

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

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

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

1 个答案:

答案 0 :(得分: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>