如何使用多个wsdl文件生成一个services.xml

问题描述:

我是Axis的新手。目前,所有的工作都与一个wsdl。我们使用axis来创建services.xml。如何使用多个wsdl文件生成一个services.xml

现在我正在另一个命名空间下创建一个新的wsdl文件。如何使用这两个wsdl文件生成单个services.xml文件?

我想实现的是两个SOAP服务绑定到一个端口。

顺便说一下,我使用ant来构建项目。

感谢

我们用一只蚂蚁concat规则如下所示:

<concat destfile="/some/final/services.xml" fixlastline="yes"> 
     <file file="/first/services.xml" /> 
     <file file="/second/services.xml" /> 
     <filterchain><tokenfilter> 
      <filetokenizer /> 
      <replaceregex 
       pattern="&lt;/serviceGroup&gt;.+?&lt;serviceGroup&gt;" 
       flags="gs" /> 
      <replaceregex 
       pattern="first.default.service.class" 
       replace="first.actual.service.class" /> 
      <replaceregex 
       pattern="second.default.service.class" 
       replace="second.actual.service.class" /> 
     </tokenfilter></filterchain> 
    </concat> 

这样可以将源文件(这两个<file...>元素)到目标文件(destfile属性)。 <filterchain>部分允许您在拼接期间更改文本。第一个replaceregex此处从两个文件连接点中删除</servicegroup><servicegroup>标记。其他replaceregex条目可用于更改服务实现类的名称,添加服务生命周期类条目或进行其他更改。

在我们的一些项目中,原始services.xml文件存储在zipfile或jar文件中,而不是直接存储在文件系统中。为此,您将使用<zipentry...>元素而不是<file...>元素:

<zipentry zipfile="/some/jarfile.jar" name="resources/services.xml"/>