1

这应该不难回答,但我发现的讨论和文档可能相当不清楚。

首先,关于我的设置的一些信息:

我在托管环境中,通过我们的 ColdFusion 管理员组可能会很耗时。因此,我使用 restInitApplication函数来注册我的 RESTful Web 服务。

我的 webroot 文件夹(我的Application.cfm所在的位置)位于“E:\docs\wwwroot”中。我只能从 wwwroot 下查看、添加、编辑文件夹/文件。我不知道“e:\docs”中有什么。我相信在上面我看不到还有另一个Application.cfm设置诸如 serverType(开发、登台或生产)之类的东西,我们(以及托管在此服务器上的其他 ColdFusion 站点)在我们的应用程序的各个地方使用代码。

我的pdfRestfulAPI.cfc(包含我的 web 服务功能的组件)在这个文件夹中,“e:\docs\wwwroot\RESTservices”。我的组件代码如下所示:

<cfcomponent rest="true"   > 
    <cffunction name="pdfconvert" access="remote" returntype="binary" 
           output="false"  produces="application/xml" method="get" >  

        <cfargument name="sourceWebPageURL" type="string" > 
            <cfset pdfDoc = "" >  
            <cfdocument name="pdfDoc" 
                  format="PDF" 
                  src="#sourceWebPageURL#" 
                  saveAsName="sample.pdf" >
            </cfdocument>  
            <cfreturn #pdfDoc#>
    </cffunction>
</cfcomponent>

函数本身不是问题。它只是将网页转换为 pdf——传递一个 URL,获取该网页的 PDF 版本。当我将它设置为非 RESTful API (SOAP/xml) 时,它工作得很好。

在我的 Application.cfm 中,我尝试使用以下代码注册我的 Web 服务:

<cfset restInitApplication( getDirectoryFromPath(getCurrentTemplatePath()) 
              & "RESTservices" ) >

这给了我一个“E:\docs\wwwroot\RESTservices”的 dir_path 属性,这对我来说似乎是正确的。我省略了可选的 mapping_name 属性。当文档说这“可以是任何东西”时,这是没有帮助的。

我在 Application.cfm 中得到的错误是:

Coldfusion.rest.RestAppAdapter$InvalidApplicationException:找不到路径 E:\docs\wwwroot\RESTservices 的映射

希望我已经以这样一种方式列出了细节,任何人都可以尝试这个并让我知道我做错了什么。

感谢大家!

4

0 回答 0