当前位置: 首页 > 知识库问答 >
问题:

无法加载外部实体

钮博裕
2023-03-14

我正在尝试集成联邦快递API并得到这个错误。

警告:SoapClient::SoapClient()[SoapClient.SoapClient]:I/O警告:无法加载测试中的外部实体“./wsdl/RateService_v13.wsdl”。php在线12

致命错误:未捕获SoapFault异常:[WSDL]SOAP-ERROR:解析WSDL:无法从'.../wsdl/RateService_v13.wsdl'加载D:\wamp\www\fedexapi\AddressValidationService_v4_php\php\addressValidationWebServiceClient\rate_test.php:12堆栈跟踪:#0 D:\wamp\www\fedexapi\AddressValidationService_v4_php\php\addressValidationWebServiceClient\rate_test.php(12):肥皂客户─

<?php
// Copyright 2009, FedEx Corporation. All rights reserved.
// Version 2.0.0

require_once('../library/fedex-common.php5');

//The WSDL is not included with the sample code.
//Please include and reference in $path_to_wsdl variable.
$path_to_wsdl = "../wsdl/LocationsService_v3.wsdl";

ini_set("soap.wsdl_cache_enabled", "0");

$client = new SoapClient($path_to_wsdl, array('trace' => 1)); // Refer to http://us3.php.net/manual/en/ref.soap.php for more information

$request['WebAuthenticationDetail'] = array(
        'ParentCredential' => array(
            'Key' => getProperty('parentkey'),
            'Password' => getProperty('parentpassword')
        ),
        'UserCredential' => array(
            'Key' => getProperty('key'), 
            'Password' => getProperty('password')
    )
);

?>

如何解决这个问题?

共有2个答案

包丁雨
2023-03-14

相对路径也起作用。

在我的例子中,我必须修复wsdl文件的相对路径。

周浩博
2023-03-14

好吧,SoapClient first参数必须是URI,而不是磁盘上的本地文件名。

错误表明它无法加载wsdl。请看一下规格,这个示例应该可以清楚地说明这一点。

 类似资料:
  • 我拼凑了一个示例项目来说明我的问题。 main.java: sample.fxml: 错误中显示的完整路径完全正确,并指向确实存在的文件。 我该如何排除故障呢?由于它在示例项目中运行良好,但在我较大的项目中却不行,所以问题显然出在我的其他项目代码中的某个地方。 但是为什么编译器会告诉我一个文件不存在,而它明明存在呢?

  • 我无法从亚马逊S3桶加载雪花中的外部表。外部表创建成功,但在运行select命令时,不会返回任何内容。奇怪的是COPY into命令对雪花中的同一个表起作用。 谢谢,纳维德

  • 我还试图将该文件的权限更改为777,但它不起作用。

  • 我有一个带有spring boot的java项目,我需要加载应用程序。外部文件夹中的属性和依赖项jar。 我使用该应用程序进行了测试。类路径和加载程序中的属性。路径属性工作正常。 当我使用外部属性文件(我确信它们已被使用)时,加载程序。路径工作不正常,结果为ClassNotFound,因为JAR未加载。 此外,当我启动应用程序与**-Dloader.path=**xxx它的工作正常。 如何使用外部

  • 当查看JavaFX SceneBuilder时,它能够加载任何类型的FXML。则忽略根节点或控制器。scenebuilder能够加载任何类型的fxml并显示其组件。 有没有人想要一种方法来加载一个fxml,而不考虑其字段的ID、控制器或根节点的类型? 问题是,当我尝试加载任何fxml时,它只能加载,如果我设置了正确的根类型。我想(通过FileChooser)将我能找到的任何FXML加载到(比方说)

  • 在我的SpringBootWeb服务应用程序中,我想加载一个名为appName的属性,该属性的值在application.properties中定义。 application.properties具有以下条目 我通过主应用程序类启动应用程序,如下所示 但是,当我运行应用程序时,我得到以下错误 原因:java.lang.IllegalArgumentException:无法解析字符串值“${appN