2015-12-09 2 views
2

Пытается загрузить REST ext. к ML8. Сообщение об ошибке «Метод не разрешен», и эта ошибка возникает из cURL. Это ошибка 405.Метод не разрешен

Ошибка не достаточно ясна для меня. Не знаете, где искать решение. Это должно быть прямо вперед, и большая часть кода является копирование/вставка с веб-сайта ML или мои шаблоны ..

Curl

curl --anyauth --user 'thijs':'password' -X PUT -i -H "Content-type: application/vnd.marklogic-javascript" [email protected]"./plantinfo-ext.sjs" $URL'http://uien:8017/v1/config/resources/plantinfo?method=get' 

Curl réponse

HTTP/1.1 401 Unauthorized 
Server: MarkLogic 
WWW-Authenticate: Digest realm="public", qop="auth", nonce="fb8b383b56b4dba52dc", opaque="20e91abaf1b" 
Content-Type: text/html; charset=utf-8 
Content-Length: 209 
Connection: Keep-Alive 
Keep-Alive: timeout=5 

HTTP/1.1 405 Method Not Allowed 
Content-Type: text/html; charset=utf-8 
Server: MarkLogic 
Allow: DELETE, GET, HEAD, OPTIONS 
Content-Length: 221 
Connection: Keep-Alive 
Keep-Alive: timeout=5 

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <title>405 Method Not Allowed</title> 
    <meta name="robots" content="noindex,nofollow"/> 
    </head> 
    <body> 
    <h1>405 Method Not Allowed</h1> 
    </body> 
</html> 

The Rest внутр ,

/** 
* @name plantinfo 
* This REST extentsion provides SOAP service for the shipment data 
*/ 

function get() { 

    doc = {'test': 'yes'}; 

    return doc; 
} 

// Main 
exports.GET = get; 

ML Ошибка

10.8.0.6 - thijs [09/Dec/2015:14:58:23 -0500] "PUT /v1/config/resources/plantinfo?method=get HTTP/1.1" 405 221 - "curl/7.35.0" 

ответ

2

Я просто использовал свой образец файла JavaScript и загрузить его с помощью следующей команды:

curl --anyauth --user admin:admin -X PUT -i \ 
-H "Content-type: application/vnd.marklogic-javascript"\ 
--data-binary @"./test.sjs" \ 
'http://localhost:8000/v1/config/resources/example' 

Этот пример взят из документации и работает отлично - даже с ML 8,0. Для этого я получаю 204: Создано

Предлагаю вам использовать команду curl sample здесь, и если она будет работать, просто перефакторируйте ее.

+0

Разница может быть -d по сравнению с --data-binary. Если они не загружены как двоичные, новые строки, как правило, лишаются, что означает '// Main export.GET = get' - ваш экспорт закомментирован. См. Комментарий в первом примере в [PUT /v1/config/resources/[name]](http://docs.marklogic.com/REST/PUT/v1/config/resources/[name]) –

+0

Да, извините - должно было бы сделать ссылку полезной и полной. –

1

Я не уверен, что может быть причиной этой ошибки точно, но ваша Curl команда выглядит немного странно: в частности, кавычки вокруг учетных данных, и переменную $ URL перед фактическим целевым URL.

Попробуйте эту команду:

curl --anyauth --user thijs:password -X PUT -i \ 
    -H "Content-type: application/vnd.marklogic-javascript" \ 
    [email protected]"./plantinfo-ext.sjs" \ 
    'http://uien:8017/v1/config/resources/plantinfo?method=get' 
Смежные вопросы