ColdFusion 11 REST возвращает 404

Кажется, я вообще не могу заставить CF REST работать. Попробовав документы и пару статей дословно, я получаю 404.

Я использую apache - и, согласно другим сообщениям, может понадобиться JkMountFile "C:/ColdFusion11/config/wsconfig/1/uriworkermap.properties" - я добавил его на всякий случай, но, похоже, это не имеет значения.

АПАЧИ VHOST

<VirtualHost *:80>
    ServerName   127.0.0.1
    ServerAlias  127.0.0.1
    DocumentRoot "C:/wwwroot/CFREST2"
    ErrorLog     "C:/wwwroot/CFREST2/logs/error.log"
    CustomLog    "C:/wwwroot/CFREST2/logs/access.log" combined
    JkMountFile "C:/ColdFusion11/config/wsconfig/1/uriworkermap.properties"
    <Directory   "C:/wwwroot/CFREST2/logs/">
        AllowOverride None
        Options None
        Order allow,deny
        Deny from all
    </Directory>
</VirtualHost>

Пример:

CFADMIN - registered 
Root path: C:\wwwroot\CFREST2
Host: 127.0.0.1
Service Mapping: test

ФАЙЛ: (C:\wwwroot\CFREST2\rest3.cfc)

<cfcomponent rest="true" restpath="restService" >

    <cffunction name="sayHello" access="remote" returntype="String" httpmethod="GET" >

        <cfset rest = "Hello World" >

    <cfreturn rest >

</cffunction>

MAKING GET REQUEST IN POSTMAN:

http://127.0.0.1/rest/test/restService/

ВОЗВРАТ:

404

СДЕЛАТЬ ЗАПРОС В POSTMAN:

http://127.0.0.1/rest/test/restService/sayHello

ВОЗВРАТ:

404

Я пробовал несколько вариантов, но ВСЕГДА получаю 404.


person j-p    schedule 31.01.2017    source источник
comment
Хост в службах CF Admin REST не является обязательным — вы уверены, что он должен быть установлен на 127.0.0.1? Вы тестируете его на своей локальной машине? Попробуйте оставить его пустым, может быть. Попробуйте изменить restpath=restService на restpath=/restService. Также — в CF Admin — Data & Services > REST Services — нажмите кнопку обновления и проверьте, правильно ли он обновился — вверху должно быть сообщение «Сервер успешно обновлен». GET 127.0.0.1/rest/test/restService должен быть правильным путем.   -  person Lucas    schedule 31.01.2017
comment
Что ж, одна из моих тестовых папок начала работать после того, как я вернулся с обеда ... Хотя одна из них все еще выдает 404, я подозреваю, что перезагрузка службы сделала свое дело, но я все еще не понимаю, почему - перезапуск службы не упоминается ни в одном документы Это слишком непоследовательно, а остальные дополнения к разрешению пути вместе с некоторыми другими странностями не позволят мне использовать CF для моих REST API. Я думаю, что CF пропустил эту лодку.   -  person j-p    schedule 31.01.2017


Ответы (2)


FWIW, более 4 лет после того, как был задан вопрос, и я какое-то время не использовал CF, и я пытаюсь настроить службу RESTful.

Я получал 404 и видел это в своем exception.log:

java.io.FileNotFoundException: .../cfusion/wwwroot/WEB-INF/rest-skeletons/path.to.component.Fubar.class (отказано в доступе)

Я проверил, и у учетной записи, на которой запущена служба, не было разрешения на запись в каталог rest-skeletons. Я изменил это, не более 404, на следующую проблему!

person Barry    schedule 12.07.2021

Попробуйте инициализировать, запустив это в отдельном файле .cfm:

<cfset restInitApplication("C:\wwwroot\CFREST2","test")>

Для вызова: http://127.0.0.1/rest/test/restService

person Leonid Alzhin    schedule 31.01.2017