0

我在域模式下的 teiid 主从设置上部署了多个 VDB。例如,AirFlights-vdb.xml、Customer-vdb.xml ...等部署了几个程序,这些程序在每个 VDB 中作为 REST API 公开。我使用 IP:8080/AirFlights_1/api 之类的 URL 来访问 swagger 文档特定的 VDB。当部署了多个 VDB 时,swagger 文档会损坏。例如,当我执行 IP:8080/AirFlights_1/api 时,它会列出与 Customer-vdb.xml 和其他已部署 VDB 相关的 API 资源。您能帮我解决生成的 swagger 文件的这种混乱性质吗?

我使用 http://teiid.org/rest}auto-generate" value="true"/> 属性来生成 War 文件。

示例 vdb 看起来像这样

?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<vdb name="sample" version="1">
    <property name="UseConnectorMetadata" value="true" />
    <property name="{http://teiid.org/rest}auto-generate" value="true"/>

    <model name="PM1">
        <source name="text-connector" translator-name="loopback" />
         <metadata type="DDL"><![CDATA[
                CREATE FOREIGN TABLE G1 (e1 string, e2 integer);
                CREATE FOREIGN TABLE G2 (e1 string, e2 integer);
        ]]> </metadata>
    </model>
    <model name="View" type ="VIRTUAL">
         <metadata type="DDL"><![CDATA[
            SET NAMESPACE 'http://teiid.org/rest' AS REST;
            CREATE VIRTUAL PROCEDURE g1Table(IN p1 integer) RETURNS TABLE (xml_out xml) OPTIONS (UPDATECOUNT 0, "REST:METHOD" 'GET', "REST:URI" 'g1/{p1}')
            AS
            BEGIN
                SELECT XMLELEMENT(NAME "rows", XMLATTRIBUTES (g1Table.p1 as p1), XMLAGG(XMLELEMENT(NAME "row", XMLFOREST(e1, e2)))) AS xml_out FROM PM1.G1;
            END
            ]]> </metadata>
    </model>

</vdb>
4

1 回答 1

0

这当然看起来像一个错误。我能够重现并将其捕获为https://issues.jboss.org/browse/TEIID-5173

于 2017-11-28T01:30:10.617 回答