2

我们正在从 CF9 转移到 CF11。改变的一件事是 CF11 现在发布和使用轴 2 Web 服务,而 CF9 使用轴 1 Web 服务。

因此,我们有一堆轴 1 Web 服务,我们宁愿不回去重构它们。我们已经看到您可以将一些设置添加到代码中以指定版本,但如果可能的话希望避免这种情况。Web 服务屏幕上的 CF11 管理员中有一个设置是在轴 2 和轴 1 之间切换(默认为轴 2)。

那个开关有什么作用?

我们希望它可以用于将服务器设置为默认发布和使用轴 1 Web 服务,但对该理论的快速测试似乎不起作用。

如果没有重构,还有其他选择吗?

谢谢

4

1 回答 1

2

您可以在多个级别指定轴版本。

请参阅Axis-2 和 Axis-1 兼容性问题

基本上除了在您指定的服务器级别之外,但听起来您想要更精细的控制。

您可以在 application.cfc 中的应用程序级别执行此操作:

<cfset this.wssettings.version.consume = "2">

甚至在逐个呼叫的基础上,例如:

ws = createObject("webservice"
                   , "http://localhost:8500/mycfc.cfc?wsdl"
                   , {wsversion="2"}
                 )

或这个

<cfinvoke webservice = "http://localhost:8500/mycfc.cfc?wsdl" 
        method="echo" 
        wsversion="2" 
        returnVariable="foo" >

我不确定,但您可能必须使用 refreshWSDL 来确保为 Axis-2 重新生成代理类(如果是这样,这将是一次性的事情,所以您在测试时会这样做,然后删除 refreshWSDL

<cfinvoke webservice = "http://localhost:8500/mycfc.cfc?wsdl" 
          method="echo" 
          wsversion="2" 
          returnVariable="foo" 
          refreshWSDL="yes">
于 2014-09-05T01:16:11.623 回答