일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- spring boot batch
- flashback
- tomcat
- drag&drop
- Spring
- WAS 환경
- spring properties
- tomcat 세팅
- Maven #POM.XML
- ORA-00600
- spring boot scheduler
- mybatis
- 리스트
- Spring Boot
- 리스트 관리
Archives
- Today
- Total
Hello World?
Controller에서 Service 호출하여 JSON 정보 조회 본문
웹에서 다른 서비스 조회시, 웹페이지에서 ajax로 호출하여 서비스를 하려 하였으나,
Access-Control-Allow-Origin 문제로 인해 자바단에서 호출하도록 변경 하였다
pom.xml에 아래의 라이브러리들을 maven repository에서 검색하여, dependency 한다
httpClient
httpCore
그리고 컨트롤러에 아래와 같이 추가한다
@RequestMapping(value = "api/test.do")
@ResponseBody
public void getTicketInfo(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception {
String rtnData = "";
String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko";
Properties proPath = null;
String serviceURL = "[호출할 URL 정보]";
try {
Map<String, Object> map_d = new HashMap<String, Object>();
HttpGet req = new HttpGet(serviceURL );
req.setHeader("User-Agent", USER_AGENT);
req.setHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
req.setHeader("Accept-Language", "ko-KR,ko;q=0.5");
HttpClient client = HttpClientBuilder.create().build();
HttpResponse rep = client.execute(req);
int responseCode = rep.getStatusLine().getStatusCode();
BufferedReader rd = new BufferedReader(new InputStreamReader(rep.getEntity().getContent(), "UTF-8"));
StringBuffer result = new StringBuffer();
String line = "";
while ((line = rd.readLine()) != null) {
result.append(line);
}
map_d.put("responseCode", responseCode);
if ( result.length() > 0 ) {
JSONParser parser = new JSONParser();
JSONObject json = (JSONObject) parser.parse(result.toString());
if ( json != null ) {
map_d.put("message", json.get("message"));
map_d.put("success", json.get("success"));
}
}
ObjectMapper om = new ObjectMapper();
rtnData = om.writeValueAsString(map_d);
} catch(Exception e){
LOG.error(e.getMessage());
System.out.println(this.getClass().toString() + " Exception : " + e.toString());
Map<String, Object> map_d = new HashMap<String, Object>();
map_d.put("message", "Error : " + e.toString());
map_d.put("responseCode", "000");
ObjectMapper om = new ObjectMapper();
rtnData = om.writeValueAsString(map_d);
}
response.setContentType("text/html; charset=utf-8");
PrintWriter pw = response.getWriter();
pw.print(rtnData);
pw.flush();
}
위와 같이 컨트롤러를 작성하면,
웹페이지 자바스크립트에서 api/test.do 를 호출하면 된다
웹페이지에서 JSON으로 받도록 했을시엔, 서비스 받은 내용을 더 간단히 줄일수 있다.
이 내용은 차후에 기술토록 하겠다
'JAVA WEB > SPRING' 카테고리의 다른 글
Spring Boot Restful 서비스 개발 (0) | 2018.07.04 |
---|---|
Spring Boot 배치프로그램 개발 5(MySQL + logback) (0) | 2018.07.02 |
Spring Boot 배치프로그램 개발 4 (MySQL + logback) (0) | 2018.07.02 |
Spring Boot 배치프로그램 개발 3 (MySQL + logback) (0) | 2018.07.02 |
Spring Boot 배치프로그램 개발 2 (MySQL + logback) (0) | 2018.07.02 |