【问题标题】:ColdFusion 10 CFC web service fails with javax.servlet.ServletException: https is forbiddenColdFusion 10 CFC Web 服务因 javax.servlet.ServletException 失败:禁止使用 https
【发布时间】:2013-07-29 22:17:46
【问题描述】:

这个问题和下面的链接类似,主要针对Java:

Web service authentication using https giving error

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

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

javax.servlet.ServletException: https 被禁止

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

【问题讨论】:

    标签: coldfusion coldfusion-10


    【解决方案1】:

    对于 Windows:

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

    搜索以下行:

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

    将该行替换为:

    <!--    <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>
    

    然后重启“ColdFusion 10 Application Server”服务。

    【讨论】:

    • 请注意,此问题在 ColdFusion 2016 中仍然存在。另请注意,axis2.xml 对于每个 ColdFusion 实例都是唯一的,因此在 Jibben 的示例中,将“cfusion”文件夹替换为您的实例名称以进行修复对那个实例生效。
    • 在 ColdFusion 2021 中这仍然是一个问题。ColdFusion Enterprise 中axis2.xml 文件的路径是:{cfusionhome}\{instancename}\wwwroot\WEB-INF\axis2.xml 另请注意,类名已更改为:coldfusion.xml.rpc .module.CFAxisServletListener 所以要小心直接从 Scott 的回复中复制和粘贴代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多