我们正在将Web服务器和我们的客户之间放置一个wso2esb服务器。我有导入问题,并包含在wsdl文件中。从文件中导入XSD
为了简化迁移,我们认为我们会将所有的wsdl和xsd文件复制到esb服务器上的一个目录(但在wso2esb软件之外)。在esb中创建服务时,我现在使用'指定源WSDL'来引用wsdl文件。
这确实显示了一个wsdl,但不是(完全)我们创建的那个。所以我们使用'useOriginalwsdl = true','modifyUserWSDLPortAddress = true','showAbsoluteSchemaURL = true'。
在我们的WSDL的一个we'ver了这段代码:
<xs:schema targetNamespace="http: //www.egem.nl/StUF/wsdl/zkn0201.wsdl">
<xs:import schemaLocation="xsd/stuf0204.xsd" namespace="http://www.egem.nl/StUF/StUF0204"/>
<xs:import schemaLocation="xsd/zkn0201.msg.xsd" namespace="http://www.egem.nl/StUF/sector/zkn/0201"/>
</xs:schema>
设置了上述参数,这表明在服务的WSDL为:
<xs:schema targetNamespace="http://www.egem.nl/StUF/wsdl/zkn0201.wsdl">
<xs:import namespace="http://www.egem.nl/StUF/StUF0204" schemaLocation="HAEM_TEST?xsd=xsd/stuf0204.xsd"/>
<xs:import namespace="http://www.egem.nl/StUF/sector/zkn/0201" schemaLocation="HAEM_TEST?xsd=xsd/zkn0201.msg.xsd"/>
</xs:schema>
但是,当我用“http:// ...../sevices/HAEM_TEST?xsd = xsd/zkn0201.msg.xsd”查询wsdl,它不返回xsd的内容。相比于自己
$ ls -lR /some/path/to/my/resource
.:
drwx------. 2 wnproesb01 wnproesb01 4096 Apr 17 23:15 xsd
-rwx------. 1 wnproesb01 wnproesb01 9498 Apr 16 18:31 zkn0201.wsdl
./xsd:
-rwx------. 1 wnproesb01 wnproesb01 13885 Apr 16 18:31 stuf0204.xsd
-rwx------. 1 wnproesb01 wnproesb01 63982 Apr 16 18:31 zkn0201.msg.xsd
这些XSD的文件可能有进口或包括自己,通过相对路径给出:尽管XSD的是相对presenton盘服务所使用的实际WSDL:
在磁盘上。
大问题:我需要做什么,使wsdl成为有效的wsdl,如wso2esb所示?包括所有包含/导入的xsd。