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

时间:2012-12-04 02:20:33

标签: java soap wsdl axis2

我是Axis的新手。目前一切都适用于一个wsdl。我们使用axis来创建services.xml。

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

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

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

由于

1 个答案:

答案 0 :(得分:0)

我们使用如下的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或jarfile中,而不是直接存储在文件系统中。为此,您使用<zipentry...>元素而不是<file...>元素:

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