2016-11-07 8 views
0

У меня есть Spring Controller,Есть ли способ узнать, какой полный URL-адрес контроллер Spring собирается отобразить?

@Controller 
@RequestMapping(value = "/employee") 
public class EmployeeController { 

@Autowired 
private EmployeeService employeeService; 

/** 
* returns all the employees in the datastore. 
* 
* @return list of all employees. 
*/ 
@RequestMapping(method = RequestMethod.GET) 
public @ResponseBody String getAllEmployees() { 
    return convertObjectListToJSONArray(this.employeeService.listEmployees()); 
} 

/** 
* adds an employee in the data-store. 
* 
* @param employee 
*   employee to add in the data-store. 
* @return request status. 
*/ 
@ResponseStatus(value = HttpStatus.CREATED) 
@RequestMapping(method = RequestMethod.POST, consumes = "application/json", produces = "application/json") 
public ResponseEntity<?> addEmployee(UriComponentsBuilder uriCBuilder, @RequestBody Employee employee) { 
    Employee e = this.employeeService.getEmployeeById(employee.getId()); 
    if(null != e) { 
     throw new EmployeeConflictException(); 
    } 
    this.employeeService.addEmployee(employee); 
    UriComponents uriComponents = uriCBuilder.path("/cmpe281Pratik021/rest/employee/{id}") 
      .buildAndExpand(employee.getId()); 
    HttpHeaders headers = new HttpHeaders(); 
    headers.setLocation(uriComponents.toUri()); 
    return new ResponseEntity<Void>(headers, HttpStatus.CREATED); 
} 

Но, когда я ударил http://localhost:8080/employee он дает ошибку 404. Есть ли способ печати до полного URL, который весной этого года контроллер будет отображаться?

+0

Это кажется ваш контекст отсутствует в URL вы ударяя. http: // localhost: 8080//employee – Khuzi

+1

Как вы развертывали это приложение? это был файл .war? или Spring Boot? Если вам нужна .war, вам понадобится contextPath (имя .war). 'http: // localhost: 8080//employee' – shazin

ответ

0

Есть ли способ распечатать на полный URL-адрес, который этот контроллер весны будет отображаться?

Вы можете включить ниже протоколирования свойства:

log4j.category.org.springframework.web=INFO 

Теперь, если вы перезагрузите Tomcat (или любой другой сервер), то во время запуска, когда весна контейнер инициализации DispactherServlet и HandlerMapping, его будет распечатывать все идентифицированные сопоставления (из разных классов Controller) в журналы, чтобы вы могли фактически проверить, какие сопоставления будут обслуживаться классами Controller.

P.S .: Это протоколирование только список/журнал всех отображений контроллера, которые будут полезны для отладки/решения проблем

+0

Я попробую это. Надеюсь, это решит проблему. – pratiksanglikar

+0

Он поможет вам перечислить все сопоставления, которые будут полезны для решения проблемы – developer

+0

, как включить это свойство? – pratiksanglikar