WildFly 10 서버 내에 호스팅 된 Spring 4.1.0 MVC 프로젝트가 있습니다. 내가 http://localhost:8080/rest/message/register에 요청을 게시 우체부를 사용하고스프링 MVC 경로를 찾을 수 없음 - 404
@Controller
@RequestMapping("/rest/message")
public class HomeController {
@RequestMapping(method = RequestMethod.POST, value = "/register")
public @ResponseBody PostResult register(HttpServletRequest request, @RequestHeader("userUid") String userUid,
@RequestHeader("Uid") String Uid, @RequestHeader(value = "firstName", required = false) String FirstName,
@RequestHeader(value = "lastName", required = false) String LastName,
@RequestHeader(value = "emailAddress", required = false) String EmailAddress,
@RequestHeader(value = "userName", required = false) String UserName,
@RequestHeader(value = "country", required = false) String Country,
@RequestHeader(value = "password", required = false, defaultValue = "") String Password,
@RequestHeader(value = "deviceId", required = false, defaultValue = "") String deviceID) {
}
}
: 그리고 나는 404을받지 않고 요청을 보내는 데 문제가 있어요 여기에 내 컨트롤러와 메소드 선언 중 하나입니다. 나는 "404 - Not Found"로 돌아 간다. WildFly 시작 화면을 보려면 http://localhost:8080으로 성공적으로 이동할 수 있습니다. 컨트롤러의 생성자에서 중단 점을 설정하여 생성 된 것을 확인할 수도 있습니다. 또한, 나는 나를 경로가 실제로 등록되었다고 생각하는 최고의 서버 로그에서 다음을 참조하십시오
INFO : org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped "{[/rest/message/register],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public com.justPick5.jp5.returnObjects.PostResult com.justPick5.jp5.HomeController.register(javax.servlet.http.HttpServletRequest,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)
이 문제가되는 매개 변수의 가능성을 배제하기 위해, 여기 컨트롤러의 간단한 방법은 다음과 같습니다
@RequestMapping(method = RequestMethod.GET, value = "/testNoParams")
public @ResponseBody PostResult testNoParams() {
System.out.println("testNoParams");
return null;
}
우편 배달부에서 http://localhost:8080/rest/message/testNoParams으로 GET하는 것은 동일한 결과를 가져옵니다.
은 여기 내 web.xml을
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
<context-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</context-param>
<!-- Processes application requests -->
<servlet>
<servlet-name>appServlet</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>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
감사 어떤 도움이다.
이 형식의 데이터는 modelAttribute의 requestHeaders로 전달되어야합니다. http://stackoverflow.com/a/20515220/2310289 –
예. 그들은 머리글로 전달 될 것으로 생각됩니다. 이것은 RESTful API cll이며 HTML 양식에서 호출되지 않습니다. 헤더 매개 변수를 추가하면 반환되는 404와 아무런 차이가 없습니다. –
전체 URL을 @RequestMapping (method = RequestMethod.GET, value = "/ rest/message/testNoParams")와 같은 메소드에 매핑하고 클래스 수준에서 제거 할 수 있습니까? –