我正在使用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?
答案 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>