Coldfusion RESTful API, ошибка сопоставления не найдена
На это не должно быть слишком сложно ответить, но обсуждения и документация, которые я нашел, могут быть довольно неясными.
Прежде всего, немного информации о моей настройке:
Я нахожусь в размещенной среде, и прохождение через нашу группу администраторов ColdFusion может занять много времени. Поэтому я использую функцию restInitApplication для регистрации моего веб-сервиса RESTful.
Моя папка webroot (где находится мой Application.cfm) находится в "E:\docs\wwwroot". Я могу только видеть, добавлять, редактировать папки / файлы с wwwroot down. Я понятия не имею, что находится в "e:\docs". Я полагаю, что выше, где я не вижу, есть еще один Application.cfm, который устанавливает такие вещи, как serverType (разработка, подготовка или производство), который мы (и другие сайты ColdFusion, размещенные на этом сервере) используем в разных местах в нашем приложении код.
Мой pdfRestfulAPI.cfc (компонент, содержащий мою функцию веб-сервиса) находится в этой папке "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-версию этой веб-страницы. Когда я настраиваю его как API без RESTful (SOAP/xml), он работает просто отлично.
В моем Application.cfm я пытаюсь зарегистрировать свой веб-сервис, используя следующий код:
<cfset restInitApplication( getDirectoryFromPath(getCurrentTemplatePath())
& "RESTservices" ) >
Это дает мне атрибут dir_path для "E:\docs\wwwroot\RESTservices", который мне кажется правильным. Я опустил необязательный атрибут mapping_name. Когда в документации говорится, что это "может быть что угодно", это не помогает.
Ошибка, которую я получаю в своем Application.cfm, гласит:
coldfusion.rest.RestAppAdapter $ InvalidApplicationException: не найдено сопоставление для пути E: \ docs \ wwwroot \ RESTservices
Надеюсь, я изложил детали таким образом, чтобы любой мог попробовать это и сообщить мне, что я делаю неправильно.
Спасибо всем!