분류 전체보기
-
jquery ajax method 정리2014.03.12
-
[Spring] Spring AOP를 이용한 메서드 추적2014.02.13
[오류]Setting property 'source' to 'org.eclipse.jst.jee.server:프로젝트명' did not find a matching property
정상적으로 실행되던 톰켓에서 아래와 같은 오류를 뱉어 낼 경우가 간혼 있다.
Setting property 'source' to 'org.eclipse.jst.jee.server:프로젝트명' did not find a matching property.
그럴 경우 톰캣 설정에 Server Option 탭에 아래와 같은 설정 후 재기동.
'Programming > Java' 카테고리의 다른 글
[Java] Collection sort (0) | 2016.01.07 |
---|---|
[Java] GMT/UTC 날짜 변환 (1) | 2015.04.08 |
올바른 eqals() 사용법 (0) | 2014.02.07 |
[Java] split 문자열 나누기 (0) | 2014.02.05 |
java e.printStackTrace 로그 남기기 (0) | 2014.01.17 |
spring mvc @ResponseBody, @RequestBody json + ajax
spring기반 json + ajax 처리
mappingJacksonHttpMessageConverter는 @ResponseBody, @RequestBody 어노테이션 사용시 JSON String을 javaClass(get, set)에 자동으로 맵핑이 되도록 변환을 해주는 스프링 애너테이션입니다.
우선 MappingJacksonHttpMessageConverter 관련 bean 설정이 필요합니다.
-board-servlet.xml
<bean id=jacksonMessageConverter class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter ">
</bean>
<bean class=org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter>
<property name="messageConverters">
<list>
<ref bean="jacksonMessageConverter" />
</list>
</property>
</bean>
@RequestBody는 클라이언트에서 jsonObject로 전송되는 파라미터를 자동으로 javaClass 형식으로 변환한다. (UserBean Class 는 클라이언트에서 받을 파라미터를 get, set 으로 작성하면, bean에 등록된 massageConverters에서 자동으로 javaClass 형식에 맞게 컨버팅이 이뤄진다.)
@ResponseBody는 클라이언요청을 서버에서 처리 후 메소드가 리턴하는 오브젝트를 messageConverters를 통해 json 형태로 변환하여 리턴해주는 역활을 한다.
-UserController.java
@RequestMapping(value="getLoginCheck.ajax", method=RequestMethod.POST)
public @ResponseBody UserBean loginCheck(@RequestBody UserBean userBean){
logger.info("userBeanD.getJ_username(){}", userBean.getJ_username());
userBean = userService.getUsers(userBean.getJ_username());
return userBean;
}
ajax 통신을 위해 jquery ajax method 설정을 아래와 같이 jQuery로 선언해준다.
var _param = {j_username:$("#j_username").val(), j_password:$("#j_password").val()};
_data = JSON2.stringify(_param); //jsonString으로 변환
_url = "localhost:8080/login/getLoginCheck.ajax";
-common.js
$.ajax({
type : 'POST',
url : _url,
cache: false,
dataType: "json",
data: _data,
processData: false,
contentType: "application/json;
charset=utf-8",
success : function(data, status){
console.log("status:"+status+","+"data:"+data);
alert(data.nm);
},
error: function(request, status, error){
//alert("loading error:" + request.status);
console.log("code : " + request.statusText + "\r\nmessage : " + request.responseText);
}
});
'Programming > Spring' 카테고리의 다른 글
[오류] org.springframework.jdbc.datasource.DataSourceTransactionManager 빈 생성 에러 (0) | 2014.05.13 |
---|---|
[오류] java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet (0) | 2014.04.28 |
[Spring] Spring AOP를 이용한 메서드 추적 (0) | 2014.02.13 |
spring social (0) | 2014.02.12 |
spring mvc 모델 생성 (0) | 2014.02.11 |
jquery ajax method 정리
$.ajax({ type: 'POST', url: _url, cache: false, dataType: "json", data: _data, processData: true, contentType: "application/json; charset=utf-8", success: function(data, status){ }, error: function(request, status, error){ } });
Name |
Value/Description |
파라메터는 한 개 이상의 name/value 쌍으로 표시 |
async |
Boolean 값 |
요청이 비동기식으로 처리되는지 여부를 나타냄 기본값은 true |
beforeSend(xhr) |
|
요청을 보내기 전에 실행되는 함수 |
cache |
Boolean 값 |
브라우저가 요청된 페이지를 캐싱해야 하는지 여부를 나타냄 |
complete(xhr,status) | 요청이 완료됐을 때 실행되는 함수 | |
contentType | 서버로 보내지는 데이터의 content-type 기본값은 “application/x-www-form-urlencoded" | |
dataFilter(data,type) | XMLHttpRequest의 응답 데이터를 처리할 때 사용되는 함수 | |
dataType | 서버 응답으로 받는 데이터 타입 | |
error(xhr,status,error) | 요청이 실패했을 때 실행되는 함수 | |
global | Boolean 값 | 요청에 대해 전역 AJAX 이벤트를 실행할 지 여부를 명시함 |
jsonp | jsonp 요청에서 callback 함수를 오버라이딩하는 문자열 | |
jsonpCallback | jsonp 요청에서 callback 함수 이름을 나타냄password | |
password | HTTP 접근 인증(access authentication) 요청에 사용할 password를 나타냄 | |
processData | Boolean 값 | 요청으로 보낸 데이터를 query string 형태로 변환할지 여부를 나타냄 기본값은 true |
scriptCharset | 요청할 때의 charset을 나타냄 | |
success(result,status,xhr) | 요청이 성공했을 때 수행되는 함수 | |
timeout | 요청에 대해 로컬의 응답제한시간(timeout)을 밀리초로 나타냄 | |
traditional | Boolean 값 | 파라미터 직렬화를 기존 방식으로 사용할 지 여부를 나타냄 |
type | 요청 type(GET 혹은 POST)을 명시함 | |
url | 요청을 보낼 URL을 나타냄 기본값은 현재페이지 | |
xhr | XMLHttpRequest 오브젝트를 생성할 때 사용하는 함수 |
'Programming > Frontend' 카테고리의 다른 글
[jQuery] each break/continue (0) | 2015.01.22 |
---|---|
[jQuery] loadingbar plugin (0) | 2014.09.19 |
jQuery multi redio button valid check (0) | 2014.02.13 |
[ajax] JSONP CROSS SITE 응답 받기 (0) | 2014.02.12 |
jQuery에서 부모창 제어/접근(opener, parent) (0) | 2014.02.11 |
Tomcat error
Caused by: java.lang.IllegalStateException: Ambiguous mapping found. Cannot map 'socialController' bean method
톰켓 Console에서 위와 같은 오류가 발생한 경험이 있다.
알고 보니 두개에 Controller에서 동일한 URL 맵핑으로 method가 정의 되어 있어서 발생하는 경우 이다.
-homeController.java
@RequestMapping(value = "/facebook/posting")
public void postings(String message , String accessToken, HttpServletRequest request, HttpServletResponse response)
-socialController.java
@RequestMapping(value = "/posting")
public void posting(String message, String accessToken, HttpServletRequest request, HttpServletResponse response)
한곳의 Request Mapping을 변경하면 해결 된다.
[Spring] Spring AOP를 이용한 메서드 추적
Spring AOP 메서드 추적 Flow
Spring AOP를 활용한 메소드 흐름을 로깅한 로직을 정리합니다.
<!-- spring aspect -->
<bean id="loggingAspect" class="com.zz.framework.support.aspect.LoggingAspect" />
<aop:config proxy-target-class="true">
<aop:aspect id="aspectLoggging" ref="loggingAspect">
<aop:pointcut id="servicePointcut" expression="execution(* *..*.service.*Service*.*(..))" />
<aop:around method="logAround" pointcut-ref="servicePointcut" />
</aop:aspect>
</aop:config>
public class LoggingAspect {
private static final Logger logger = LoggerFactory.getLogger(LoggingAspect.class);
public void logBefore(JoinPoint joinPoint) {
logger.debug("logBefore()");
}
public void logAfter(JoinPoint joinPoint) {
logger.debug("logAfter()");
}
/**
* 메소드 별 로그 앞뒤로 남기기
* @param joinPoint
* @return
* @throws Throwable
* @auther jp1020 2014. 1. 15.
*/
public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable {
Object thisObj = joinPoint.getTarget();
String className = thisObj.getClass().getName();
Object[] args = joinPoint.getArgs();
long currentTime = System.currentTimeMillis();
if(logger.isDebugEnabled()) {
logger.debug("=================================================");
logger.debug(">>>>>>>>> LOGGING START >>>>>>>>>>");
logger.debug("[class]:" + className);
logger.debug("[method]:" + joinPoint.getSignature().getName() + "()");
}
Object returnObj = joinPoint.proceed();
if(logger.isDebugEnabled()) {
logger.debug("[class]:" + className);
logger.debug("[method]:" + joinPoint.getSignature().getName() + "()");
logger.debug("[소요시간]: {}ms", new Object[]{(System.currentTimeMillis()-currentTime)});
logger.debug(">>>>>>>>>> LOGGING END >>>>>>>>>>");
logger.debug("=================================================");
}
return returnObj;
}
}
페이지 호출시 Console창에 출력된 로그를 확인 합니다.
[2014-02-13 17:52:23] DEBUG [LoggingAspect.logAround():46]:=================================================
[2014-02-13 17:52:23] DEBUG [LoggingAspect.logAround():47]:>>>>>>>> LOGGING START >>>>>>>
[2014-02-13 17:52:23] DEBUG [LoggingAspect.logAround():48]:[class]:com.zz.board.business.board.service.impl.BoardServiceImpl
[2014-02-13 17:52:23] DEBUG [LoggingAspect.logAround():49]:[method]:listBoard()
[2014-02-13 17:52:23] DEBUG [AbstractBeanFactory.doGetBean():246]:Returning cached instance of singleton bean 'loggingAspect'
내용생략.........
[2014-02-13 17:52:23] DEBUG [LoggingAspect.logAround():55]:[class]:com.zz.board.business.board.service.impl.BoardServiceImpl
[2014-02-13 17:52:23] DEBUG [LoggingAspect.logAround():56]:[method]:listBoard()
[2014-02-13 17:52:23] DEBUG [LoggingAspect.logAround():57]:[소요시간]: 281ms
[2014-02-13 17:52:23] DEBUG [LoggingAspect.logAround():58]:>>>>>>>> LOGGING END >>>>>>>>
[2014-02-13 17:52:23] DEBUG [LoggingAspect.logAround():59]:=================================================
'Programming > Spring' 카테고리의 다른 글
[오류] java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet (0) | 2014.04.28 |
---|---|
spring mvc @ResponseBody, @RequestBody json + ajax (2) | 2014.03.12 |
spring social (0) | 2014.02.12 |
spring mvc 모델 생성 (0) | 2014.02.11 |
[Spring] Environment와 @PropertySource (0) | 2014.02.05 |