Soap 为什么赢了';在cfcomponent标记中使用serviceaddress属性更新Coldfusion组件WSDL文件

Soap 为什么赢了';在cfcomponent标记中使用serviceaddress属性更新Coldfusion组件WSDL文件,soap,coldfusion,wsdl,Soap,Coldfusion,Wsdl,使用CF9。我有一个CFC,我需要为它更改WSDL文件。我需要将下面部分中的“http”(显示为WSDL文件的最底部)更改为“https”: 因此,我在ESS.cfc的cfcomponent标记中为“serviceaddress”属性输入了一个值,serviceaddress=”https://.../ess.cfc". 但是,在浏览器中查看WSDL文件时,“location”值仍然显示为http,而不是预期的https 在过去,这适用于同一“WSDL:soapaddress locatio

使用CF9。我有一个CFC,我需要为它更改WSDL文件。我需要将下面部分中的“http”(显示为WSDL文件的最底部)更改为“https”:


因此,我在ESS.cfc的cfcomponent标记中为“serviceaddress”属性输入了一个值,serviceaddress=”https://.../ess.cfc". 但是,在浏览器中查看WSDL文件时,“location”值仍然显示为http,而不是预期的https

在过去,这适用于同一“WSDL:soapaddress location=”“元素中其他CFC的WSDL文件。“location”值将根据在cfcomponent标记中作为serviceaddress属性输入的内容进行更改。但对于这一项,“location”值在WSDL文件中根本没有更改

我能想到的唯一一件事是,如果这个cfc使用了一个静态WSDL文件,就会导致这种情况。但是,我的理解是,您必须使用cfcomponent标记中的“wsdlfile”属性才能使用静态WSDL文件,而该属性没有被使用。ESS.cfc也不会扩展任何其他cfc


WSDL文件中的位置不响应serviceaddress属性还有其他原因吗?

您可能认为所服务的WSDL是静态的。有几种方法可以强制ColdFusion生成新的WSDL。请依次尝试下面的每个建议

  • 通过创建新函数或添加新参数来更改Web服务中的代码。然后验证这些新更改是否显示在WSDL中,并查看地址位置是否已更新
  • {install directory}\cfusion\wwwroot\WEB-INF\cfc skeletons\webservice..class
    webservice.BeanInfo.class
  • 最后,从
    {install directory}cfusion\wwwroot\WEB-INF\cfclass

  • 如果您可以访问CF Admin,那么您应该能够在以下位置查看ColdFusion生成的WSDL:

    管理员->数据和服务->Web服务->活动ColdFusion Web服务

    …然后按下相关Web服务旁边的“刷新”按钮,以强制更新WSDL

    如果您使用cfinvoke调用Web服务,那么您应该能够通过在调用代码中使用
    refreshwsdl=true
    来强制更新WSDL


    如果以上两项都不适用于您,那么我认为我们需要更多地了解您如何调用此Web服务,以便首先生成WSDL。

    谢谢-我尝试了步骤1,但没有成功,但将尝试步骤2和3。我注意到一件事-WSDL文件中有一条注释,内容如下:而其他WSDL文件有一条注释读:这是否意味着它听起来像什么——第一个WSDL文件是由ApacheAxis而不是Coldfusion生成的?
    <wsdl:service name="ESS_wrapService">
        <wsdl:port name="ess.cfc" binding="impl:ess.cfcSoapBinding">
            <wsdlsoap:address location="http://.../ess.cfc"/>
        </wsdl:port>
    </wsdl:service>