2013-04-25 87 views
1

我们正在将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。

回答