나머지 API 중 하나를 테스트하기 위해 하나의 Spring Junit 클래스를 만듭니다. 하지만 전화를 걸면 404가 반환되고 테스트 케이스가 실패합니다. JUnit 테스트 클래스는 다음과 같습니다Spring Junit 테스트는 404 오류 코드를 반환합니다
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations={"classpath:config/spring-commonConfig.xml"})
public class SampleControllerTests {
public static final MediaType APPLICATION_JSON_UTF8 = new MediaType(
MediaType.APPLICATION_JSON.getType(),
MediaType.APPLICATION_JSON.getSubtype(), Charset.forName("utf8"));
private MockMvc mockMvc;
@Autowired
private WebApplicationContext webApplicationContext;
@Before
public void setup() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
}
@Test
public void testSampleWebService() throws Exception {
mockMvc.perform(post("/sample/{userJson}", "{\"id\":\"102312121\",\"text\":\"Hi user\",\"key\":\"FIRST\"}"))
.andExpect(status().isOk())
.andExpect(jsonPath("$result", is("Hello ")))
.andExpect(jsonPath("$answerKey", is("")));
}
}
RestController 클래스는 다음과 같습니다
@RestController
public class SampleController {
private static final Logger logger = LoggerFactory.getLogger(SampleController.class);
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS").create();
@Autowired private SampleService sService;
@RequestMapping(value = "${URL.SAMPLE}", method = RequestMethod.POST)
@ResponseBody
public String sampleWebService(@RequestBody String userJson){
String output="";
try{
output = sService.processMessage(userJson);
}
catch(Exception e){
e.printStackTrace();
}
return output;
}
}
내가 속성 파일의 URL 문자열을로드하고 있습니다. 이 방법은 컨트롤러 클래스에서 URL을 하드 코딩하지 않고 동적으로 매핑했기 때문에 아래에서 언급 한 클래스를 통해 속성 파일을로드하는 이유입니다.
"URL.SAMPLE =/샘플/{userJson}"
URL을 정의하는 속성 파일을 판독하고 분류 :
@Configuration
@PropertySources(value = {
@PropertySource("classpath:/i18n/urlConfig.properties"),
@PropertySource("classpath:/i18n/responseConfig.properties")
})
public class ExternalizedConfig {
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
에러 코드 (404 개) 수단과, 그것을 서버에 연결되어 있지만 요청한 소스를 가져 오지 못했습니다. 아무도 정확하게 문제가 무엇인지 말해 줄 수 있습니까?
감사합니다, 아툴
당신은 요청 본문이@RequestBody
를 사용하는 구문 분석 JSON 입력을 시도하는