2017-01-16 4 views
0

В настоящее время я пытаюсь понять, как Servlet-диспетчер работает с контроллером Rest, но Postman возвращает 404 на все, что я пробовал до сих пор.Использование DispatcherServlet для RestController

Остальные контроллер

@RestController 
@RequestMapping(value = "/applications") 
public class ApplicationController { 


private static final Logger logger = LoggerFactory.getLogger(ApplicationController.class); 

@Autowired 
@Qualifier("ApplDAO") 
private ApplDAO applDAO; 


@Autowired 
ApplicationService objServices; 

@RequestMapping(value = "for_user\\{username:\\d+}", method = RequestMethod.GET) 
public Application getApp(@PathVariable("username") String username){ 
    Application app = applDAO.getByUsername(username); 
    return app; 

    } 
} 

Мой web.xml

<!-- The definition of the Root Spring Container shared by all Servlets and Filters --> 
<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/spring4-servlet.xml</param-value> 
</context-param> 

<!-- Creates the Spring Container shared by all Servlets and Filters --> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

<!-- Processes application requests --> 
<servlet> 
    <servlet-name>springDispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet 
    </servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>springDispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

Я попытался не используя URL-шаблон/*, но без результатов. Это адрес, к которому я пытался обратиться http://localhost:8080/project/applications/for_user/username:acid Есть что-то не так с URL-адресом, который я использую, или я неправильно использовал диспетчера. Здесь ошибка весной

отображение не найдено для запроса HTTP с URI [/ проекта/приложений/for_user/имя пользователя: кислота

+0

Почему вы используете обратную косую черту вместо косых черт в вашей RequestMapping? Почему вы используете regex \\ d +, если вы хотите отправить имя пользователя: кислота (или кислота?) В качестве имени пользователя. Просто используйте 'value ="/for_user/{username} "' и используйте 'http: // localhost: 8080/project/applications/for_user/acid'. –

+0

Я наблюдал за учебниками и заблудился в огромном количестве информации, спасибо за то, что расчистил его для меня, решил мою проблему –

ответ

1

Ответил JB Nizet

Почему ты использовать обратную косую черту вместо косых черт в вашей RequestMapping? Почему вы используете regex \ d +, если хотите отправить имя пользователя: кислота (или acid?) В качестве имени пользователя. Просто используйте значение = "/ for_user/{username}" и используйте http://localhost:8080/project/applications/for_user/acid.

Смежные вопросы