2017-01-05 1 views
0

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> 

감사 어떤 도움이다.

+0

이 형식의 데이터는 modelAttribute의 requestHeaders로 전달되어야합니다. http://stackoverflow.com/a/20515220/2310289 –

+0

예. 그들은 머리글로 전달 될 것으로 생각됩니다. 이것은 RESTful API cll이며 HTML 양식에서 호출되지 않습니다. 헤더 매개 변수를 추가하면 반환되는 404와 아무런 차이가 없습니다. –

+0

전체 URL을 @RequestMapping (method = RequestMethod.GET, value = "/ rest/message/testNoParams")와 같은 메소드에 매핑하고 클래스 수준에서 제거 할 수 있습니까? –

답변

1

이 문제는 컨텍스트 경로와 관련이 있습니다. http://localhost:8080/../휴식/메시지/testNoParams

나는 당신이 (/ ..가 /), 즉 WAR가 다른 이름으로 배포되었습니다에게 될 수있는 올바른 경로를 통해 배치해야 잘못 아니에요 경우 당신은 잘못된 길을 치고있다.

이는 종종 와일드 플라이 배포에서 발생합니다.

: 배포 된 WAR은 ABC.1.0.0-BUILD-SNAPSHOT.war이지만 우리는 종종 우리 경로에서/ABC /를 쳤습니다.

따라서 컨텍스트 경로를 수정하십시오. wildfly -> deployment -> deployment Location에서이 작업을 수행 할 수 있습니다.

+0

이 링크에서 찾을 수있는대로 프로그래밍 방식으로 수행 할 수 있습니다. http : WEB-INF 폴더에 jboss-web.xml을 추가하여 /stackoverflow.com/questions/32241906/how-to-deploy-war-file-in-root-context-to-wildfly-ver-9-0-1 > /appName

관련 문제