【问题标题】:cakePHP & nuSOAP, redirects to app/webroot and does not hit controller/method, why?cakePHP 和 nuSOAP,重定向到 app/webroot 并且没有命中控制器/方法,为什么?
【发布时间】:2026-02-12 07:25:01
【问题描述】:

我使用的是 CakePHP 版本:1.2.10
使用 NuSOAP 版本:0.9.5

我的服务在不是用 Cakephp(旧程序代码)编写的应用程序下工作。
我想将服务移到我的 cakePHP 应用下。

旧网站托管在子域上:www.
旧服务(按预期工作)位于:

<!-- old Procedural code -->
http://www.mysite.org.uk/services/donations.php


CakePHP 网站托管在子域上:new.
新服务(代码几乎完全相同!)位于:
<!-- CakePHP - SOAP response doesn't reach here?, redirects to app/webroot -->
http://new.mysite.org.uk/services/registerDonation/


问题
- 当 cakePHP 收到响应时,而不是转到controller/action(在这种情况下为services/registerDonation)。它转到app/webroot(它将发送者返回到主页(显然无法处理 SOAP 响应和响应)。

...所以请求失败...:(

显然这是 cakePHP 的问题以及它如何路由请求,但我坚持如何找到解决这个问题的任何方法? (noob@cakePHP)。

.htaccess?!或自定义 cakePHP route?!做这项工作?,如果可以,我该如何实施?

总结一下..
如何从外部服务器获取 SOAP 请求以点击 cakePHP 中的 services/registerDonation [controller/method]。

如果需要更多信息,请留言并留言。

【问题讨论】:

  • 你在 cakePHP 应用程序中使用 ACL 吗?如果是这样,请不要忘记允许公共访问服务/registerDonation
  • 不,我没有服务模型,它不是必需的,我有一个捐赠模型(但这不是问题,因为它没有达到services/registerDonation 控制器/方法)。我的 config.php 中有以下内容:Configure::write('Acl.classname', 'DbAcl');Configure::write('Acl.database', 'default');

标签: cakephp soap routing nusoap


【解决方案1】:

我想你需要服务模型:

class Services extends AppModel {
   public $name = 'Services';
   public $useTable = false;
}

如果它不存在,cake 也不会看到您的服务控制器...

【讨论】:

    【解决方案2】:

    告诉我,你的 webroot 中没有 services 文件夹。它曾经发生在我身上......那只会向您显示此文件夹的内容,而不是其他任何内容

    【讨论】:

    • 不,webroot 中没有 services 文件夹,我的 webroot 只有 CSS、JS、IMG 和 Files 文件夹。没有服务文件夹。