ColdFusion 10 CFC Web 服务失败并出现 javax.servlet.ServletException:https 被禁止

Sco*_*ben 3 coldfusion coldfusion-10

这个问题类似于下面的链接,重点是Java:

使用 https 的 Web 服务身份验证给出错误

然而,这个问题是 ColdFusion 10 特有的,上面问题的答案只是暗示了 ColdFusion 10 中的解决方案。

问题:您有一个 Web 服务 CFC,它通过 http(端口 80)完美运行。当您尝试通过 https(端口 443)运行相同的 Web 服务时,Web 服务会失败。这些错误对于 IIS 或 ColdFusion 来说没有多大帮助。如果您查看异常日志,您会发现如下错误消息:

javax.servlet.ServletException:https 被禁止

问题的原因是“transportReceiver”默认设置为仅使用 ColdFusion 10 的 http。

Sco*_*ben 5

对于 Windows:

打开文件 {cfusionhome}\cfusion\wwwroot\WEB-INF\axis2.xml

搜索以下行:

<transportReceiver name="http"
                   class="coldfusion.xml.rpc.CFAxisServletListener"/>
Run Code Online (Sandbox Code Playgroud)

将该行替换为:

<!--    <transportReceiver name="http"
                   class="coldfusion.xml.rpc.CFAxisServletListener"/> -->

<transportReceiver name="http" class="coldfusion.xml.rpc.CFAxisServletListener">
    <parameter name="port">80</parameter>
</transportReceiver>

<transportReceiver name="https" class="coldfusion.xml.rpc.CFAxisServletListener">
    <parameter name="port">443</parameter>
</transportReceiver>
Run Code Online (Sandbox Code Playgroud)

然后重新启动“ColdFusion 10 应用程序服务器”服务。