Apigee获取WSDL错误无法下载未经身份验证的资源对等方

Apigee获取WSDL错误无法下载未经身份验证的资源对等方,apigee,Apigee,首先 问题: 无法通过导入现有SOAP WSDL添加新的API代理 错误: 获取WSDL错误:无法下载资源。对等方未经身份验证 我的看法是: 我怀疑是由WSDL结构包含从另一个链接派生的导入XSD引起的 <xsd:import namespace="http://XXX/message" schemaLocation="https://XXX:123/xxxservices/XxxWebService?xsd=1"/> 尝试修改我的WSDL,而不是使用从外部URL导入,我将整个

首先

问题: 无法通过导入现有SOAP WSDL添加新的API代理

错误: 获取WSDL错误:无法下载资源。对等方未经身份验证

我的看法是: 我怀疑是由WSDL结构包含从另一个链接派生的导入XSD引起的

<xsd:import namespace="http://XXX/message" schemaLocation="https://XXX:123/xxxservices/XxxWebService?xsd=1"/>

尝试修改我的WSDL,而不是使用从外部URL导入,我将整个XSD结构复制到WSDL中。它起作用了

问题: 验证过程背后的问题是什么?f、 y.i.我还将证书导入了我的Java信任库(cacerts)

问题: 成功导入WSDL后,很少有元素/参数未填充

我的WSDL的一部分:


我的看法是:

我发现Apigee没有填充password和userID的参数,我怀疑问题是由实现XML扩展基组件引起的

问题:

如何解决参数缺失问题

谢谢大家!

我的整个WSDL如下所示:

<?xml version='1.0' encoding='UTF-8'?>
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://webservice.docx.abc.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://webservice.docx.abc.com/" name="XyzWebService">
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://webservice.docx.abc.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://webservice.docx.abc.com/" name="XyzWebService">
<types>  
<xsd:schema>
<xsd:import namespace="http://webservice.docx.abc.com/message" schemaLocation="https://www.xxx.com:123/docxservices/XyzWebService?xsd=1" />
</xsd:schema>
<xsd:schema>
<xsd:import namespace="http://webservice.docx.abc.com/" schemaLocation="https://www.xxx.com:123/docxservices/XyzWebService?xsd=2" />
</xsd:schema>
</types>
<message name="docUpload">
<part name="parameters" element="tns:docUpload" />
</message>
<message name="docUploadResponse">
<part name="parameters" element="tns:docUploadResponse" />
</message>
<portType name="XyzWebServicePortType">
<operation name="docUpload">
<input message="tns:docUpload" />
<output message="tns:docUploadResponse" />
</operation>
</portType>
<binding name="XyzWebServicePortTypePortBinding" type="tns:XyzWebServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<operation name="docUpload">
<soap:operation soapAction="" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<service name="XyzWebService">
<port name="XyzWebServicePortTypePort" binding="tns:XyzWebServicePortTypePortBinding">
<soap:address location="https://www.xxx.com:123/docxservices/XyzWebService" />
</port>
</service>
</definitions>

第一个XSD:

<?xml version="1.0" encoding="UTF-8"?>
<!--Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Oracle JAX-WS 2.1.3-07/10/2008 08:41 PM(bt).-->
<xs:schema version="1.0" targetNamespace="http://webservice.docx.abc.com/message" xmlns:xns="http://webservice.docx.abc.com/message" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="DocumentUserDetailsRequest">
<xs:sequence>
  <xs:element name="password" type="xs:string" minOccurs="0"/>
  <xs:element name="userID" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DocumentResponseStatus">
<xs:sequence>
  <xs:element name="errorDetailsMap">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="key" minOccurs="0" type="xs:string"/>
              <xs:element name="value" minOccurs="0" type="xs:string"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="success" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DocumentUploadRequest">
<xs:complexContent>
  <xs:extension base="xns:DocumentUserDetailsRequest">
    <xs:sequence>
      <xs:element name="docName" type="xs:string" minOccurs="0"/>
      <xs:element name="folderName" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DocumentUploadResponse">
<xs:complexContent>
  <xs:extension base="xns:DocumentResponseStatus">
    <xs:sequence>
      <xs:element name="docNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="docName" type="xs:string" minOccurs="0"/>
      <xs:element name="Date" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>

第二个XSD:

<?xml version="1.0" encoding="UTF-8"?>
<!--Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Oracle JAX-WS 2.1.3-07/10/2008 08:41 PM(bt).-->
<xs:schema version="1.0" targetNamespace="http://webservice.docx.abc.com/" xmlns:xns="http://webservice.docx.abc.com/" xmlns:ns1="http://webservice.docx.abc.com/message" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://webservice.docx.abc.com/message" schemaLocation="XyzWebService.xsd"/>
<xs:element name="docUpload" type="xns:docUpload"/>
<xs:element name="docUploadResponse" type="xns:docUploadResponse"/>
<xs:complexType name="docUpload">
<xs:sequence>
  <xs:element name="arg0" type="ns1:DocumentUploadRequest" minOccurs="0"/>
  <xs:element name="arg1" type="xs:base64Binary" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="docUploadResponse">
<xs:sequence>
  <xs:element name="return" type="ns1:DocumentUploadResponse" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>

这不是答案-我只是把它贴在这里,让你可以阅读

您的原始导入在我看来很好,应该得到支持

我获取了您的文件,并为它们提供了有效的导入引用(它们仍然是引用和外部服务器),并且在我尝试时一切都正常,因此我需要您原始的托管WSDL、XSD来更好地诊断问题。可能吗

文件内容:

WSDL


XyzWebService1.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!--Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Oracle JAX-WS 2.1.3-07/10/2008 08:41 PM(bt).-->
    <xs:schema version="1.0" targetNamespace="http://webservice.docx.abc.com/message" xmlns:xns="http://webservice.docx.abc.com/message" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="DocumentUserDetailsRequest">
    <xs:sequence>
      <xs:element name="password" type="xs:string" minOccurs="0"/>
      <xs:element name="userID" type="xs:string" minOccurs="0"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="DocumentResponseStatus">
    <xs:sequence>
      <xs:element name="errorDetailsMap">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="key" minOccurs="0" type="xs:string"/>
                  <xs:element name="value" minOccurs="0" type="xs:string"/>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="success" type="xs:boolean"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="DocumentUploadRequest">
    <xs:complexContent>
      <xs:extension base="xns:DocumentUserDetailsRequest">
        <xs:sequence>
          <xs:element name="docName" type="xs:string" minOccurs="0"/>
          <xs:element name="folderName" type="xs:string" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="DocumentUploadResponse">
    <xs:complexContent>
      <xs:extension base="xns:DocumentResponseStatus">
        <xs:sequence>
          <xs:element name="docNumber" type="xs:string" minOccurs="0"/>
          <xs:element name="docName" type="xs:string" minOccurs="0"/>
          <xs:element name="Date" type="xs:string" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
    </xs:complexType>
    </xs:schema>

XyzWebService2.xsd

<?xml version="1.0" encoding="UTF-8"?>
<!--Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Oracle JAX-WS 2.1.3-07/10/2008 08:41 PM(bt).-->
<xs:schema version="1.0" targetNamespace="http://webservice.docx.abc.com/" xmlns:xns="http://webservice.docx.abc.com/" xmlns:ns1="http://webservice.docx.abc.com/message" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://webservice.docx.abc.com/message" schemaLocation="XyzWebService.xsd"/>
<xs:element name="docUpload" type="xns:docUpload"/>
<xs:element name="docUploadResponse" type="xns:docUploadResponse"/>
<xs:complexType name="docUpload">
<xs:sequence>
  <xs:element name="arg0" type="ns1:DocumentUploadRequest" minOccurs="0"/>
  <xs:element name="arg1" type="xs:base64Binary" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="docUploadResponse">
<xs:sequence>
  <xs:element name="return" type="ns1:DocumentUploadResponse" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>

虽然您已经编辑了域,但我注意到您的资源上有一个端口号:123:

https://www.xxx.com:123/docxservices/XyzWebService?xsd=1

假设AmazonAWS服务器需要能够访问所有资源,并且奇数端口可能会被阻塞。因此,如果您的https资源不在443上,Apigee系统连接到它可能会有问题

你能提供你的WSDL的URL吗?嗨,Randy,谢谢你的回复。我已附上上面的WSDL部分,很抱歉,由于合规性问题,无法向您提供url链接。下面是url链接,此服务已正式向公众开放。如果你仔细看的话。导入WSDL时,并非所有参数都填充在RESTAPI参数中。e、 g.缺少用户ID和密码参数。我遇到的另一个问题是“对等未验证”。这可能是由于“自签名”证书,因为我正在从测试环境执行服务(但在上面给定的链接中,prod模式下没有发生)。我可以知道Apigee是否会在我的机器中使用Java truststore来验证证书吗?
<?xml version="1.0" encoding="UTF-8"?>
<!--Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Oracle JAX-WS 2.1.3-07/10/2008 08:41 PM(bt).-->
<xs:schema version="1.0" targetNamespace="http://webservice.docx.abc.com/" xmlns:xns="http://webservice.docx.abc.com/" xmlns:ns1="http://webservice.docx.abc.com/message" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://webservice.docx.abc.com/message" schemaLocation="XyzWebService.xsd"/>
<xs:element name="docUpload" type="xns:docUpload"/>
<xs:element name="docUploadResponse" type="xns:docUploadResponse"/>
<xs:complexType name="docUpload">
<xs:sequence>
  <xs:element name="arg0" type="ns1:DocumentUploadRequest" minOccurs="0"/>
  <xs:element name="arg1" type="xs:base64Binary" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="docUploadResponse">
<xs:sequence>
  <xs:element name="return" type="ns1:DocumentUploadResponse" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
https://www.xxx.com:123/docxservices/XyzWebService?xsd=1