2014-09-17 5 views
0

Я использую фреймворк Джерси, а конечная точка у меня есть /v1/users/{user_id: \p{XDigit}{8}}/orders/{order_id: \p{XDigit}{8}}.tuckey urlrewrite возвращает 404 не найден

Что мне нужно, это переписать URL-адрес /v2/users/{user_id: \p{XDigit}{8}}/orders/{order_id: \p{XDigit}{8}} на указанный выше адрес.

Я использую tuckey для перезаписи URL. И вот мой urlrewrite.xml.

<rule> 
    <from>^/v2/users/([A-Fa-f0-9]{8})$/orders/([A-Fa-f0-9]{8})$</from> 
    <to>/v1/users/$1/orders/$2</to> 
</rule> 

Отправив запрос curl 'localhost:8080/v1/users/11111111/orders/11111111', я ударяя правую конечную точку, но когда я пытаюсь curl 'localhost:8080/v2/users/11111111/orders/11111111', я получать 404 Not Found ответ.

И когда я изменить urlrewrite.xml к следующему

<rule> 
    <from>^/v2/users/([A-Fa-f0-9]{8})/orders/([A-Fa-f0-9]{8})</from> 
    <to>/v1/users/([A-Fa-f0-9]{8})/orders/([A-Fa-f0-9]{8})</to> 
</rule> 

Я получаю ошибку о том, что You did not supply enough values to fill path parameters.

Любая идея, почему я ошибаюсь?

ответ

1

Пожалуйста, попробуйте следующее:

<rule> 
    <from>^/v2/users/([A-Fa-f0-9]{8})/orders/([A-Fa-f0-9]{8})$</from> 
    <to>/v1/users/$1/orders/$2</to> 
</rule> 

Обратите внимание, что вы использовали один дополнительный '$'. В RegEx «$» означает «конец предложения».

Удачи.

+0

Вы в точности верны! – Cacheing