Change Management 설치후
- 작성자 :
- 신*현
- 작성일 :
- 2010-05-07 13:12:48
- 조회수 :
- 4,394
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
DBMS 오라클10g로 배포된 script를 실행하고 가이드를 보고 라이센스와 db설정까지 마쳤습니다.
was를 구동시켜 로그인페이지에 admin/admin123을 넣었는데
에러없이 alert창으로 '아이디나 비밀번호가 부정확합니다'라고 뜹니다.
Hibernate: select user0_.id as id6_, user0_.type as type6_, user0_.parent as parent6_, user0_.login_name as login4_6_, user0_.name as name6_, user0_.password as password6_, user0_.email as email6_, user0_.locale as locale6_, user0_.locked as locked6_, user0_.metadata_id as metadata10_6_ from USERS user0_ where user0_.login_name=?
소스에서 로그를 찍어보니 user가 null이 나옵니다.
package egovframework.dev.isu.login.service.impl
LoginServiceImpl클래스의 login메소드에서
UsernamePasswordAuthenticationToken token =
new UsernamePasswordAuthenticationToken(loginName, password);
에서 exception이 발생하는 것 같습니다.
-------------------------------------------------------------------
Exception : Hibernate operation: could not execute query; uncategorized SQLException for SQL [select user0_.id as id6_, user0_.type as type6_, user0_.parent as parent6_, user0_.login_name as login4_6_, user0_.name as name6_, user0_.password as password6_, user0_.email as email6_, user0_.locale as locale6_, user0_.locked as locked6_, user0_.metadata_id as metadata10_6_ from USERS user0_ where user0_.login_name=?]; SQL state [null]; error code [17059]; 내부 표기로 변환할 수 없습니다; nested exception is java.sql.SQLException: 내부 표기로 변환할 수 없습니다
------------------------------------------------------------------
Exception : UserDetailsService returned null, which is an interface contract violation
org.acegisecurity.providers.dao.DaoAuthenticationProvider.retrieveUser DaoAuthenticationProvider.java 92 line
---------------------------------------------
때마침 해결했습니다.
배포해주신 User.java ==> private boolean locked = false;
boolean이군요
오라클이어서 형변환이 안되서 에러가 났습니다.
was를 구동시켜 로그인페이지에 admin/admin123을 넣었는데
에러없이 alert창으로 '아이디나 비밀번호가 부정확합니다'라고 뜹니다.
Hibernate: select user0_.id as id6_, user0_.type as type6_, user0_.parent as parent6_, user0_.login_name as login4_6_, user0_.name as name6_, user0_.password as password6_, user0_.email as email6_, user0_.locale as locale6_, user0_.locked as locked6_, user0_.metadata_id as metadata10_6_ from USERS user0_ where user0_.login_name=?
소스에서 로그를 찍어보니 user가 null이 나옵니다.
package egovframework.dev.isu.login.service.impl
LoginServiceImpl클래스의 login메소드에서
UsernamePasswordAuthenticationToken token =
new UsernamePasswordAuthenticationToken(loginName, password);
에서 exception이 발생하는 것 같습니다.
-------------------------------------------------------------------
Exception : Hibernate operation: could not execute query; uncategorized SQLException for SQL [select user0_.id as id6_, user0_.type as type6_, user0_.parent as parent6_, user0_.login_name as login4_6_, user0_.name as name6_, user0_.password as password6_, user0_.email as email6_, user0_.locale as locale6_, user0_.locked as locked6_, user0_.metadata_id as metadata10_6_ from USERS user0_ where user0_.login_name=?]; SQL state [null]; error code [17059]; 내부 표기로 변환할 수 없습니다; nested exception is java.sql.SQLException: 내부 표기로 변환할 수 없습니다
------------------------------------------------------------------
Exception : UserDetailsService returned null, which is an interface contract violation
org.acegisecurity.providers.dao.DaoAuthenticationProvider.retrieveUser DaoAuthenticationProvider.java 92 line
---------------------------------------------
때마침 해결했습니다.
배포해주신 User.java ==> private boolean locked = false;
boolean이군요
오라클이어서 형변환이 안되서 에러가 났습니다.
A
안녕하세요.. 신재현님..
우선 저희쪽에서 10g를 가지고 테스트한 결과 문제가 발생하지는 않았습니다.
(배포시에는 9i로 테스트됨)
제공된 jtrac.hbm.xmldp 사용자(Users) 테이블의 locked 컬럼에 대한 type 지정이 true_false로 되어 있고
boolean 타입이 없는 오라클의 경우는 varchar2(1) 또는 number(1)에 'T' or 'F' 또는 0 or 1의 형식으로 true_false 타입으로 지정되도록 되어 있습니다.
혹.. \egovframework-dev-isu\WEB-INF\config\spring\context-hibernate.xml에 hibernateProperties 지정 부분에..
아래와 같이 Oracle로 되어 있으신지 확인해 보십시오..
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
추가적으로 hibernate 설정파일(jtrac.hbm.xml)에 locked 속성에 대한 컬럼 지정을 다음과 같이 보다 세분화하여 적용해보셔도 될 것 같습니다.
기존 : <property name="locked" column="locked" type="true_false"/>
변경 : <property name="locked" type="true_false">
<column name="locked" sql-type="varchar2" length="1" />
</property>
그럼.. 즐거운 하루되십시오.
감사합니다.
우선 저희쪽에서 10g를 가지고 테스트한 결과 문제가 발생하지는 않았습니다.
(배포시에는 9i로 테스트됨)
제공된 jtrac.hbm.xmldp 사용자(Users) 테이블의 locked 컬럼에 대한 type 지정이 true_false로 되어 있고
boolean 타입이 없는 오라클의 경우는 varchar2(1) 또는 number(1)에 'T' or 'F' 또는 0 or 1의 형식으로 true_false 타입으로 지정되도록 되어 있습니다.
혹.. \egovframework-dev-isu\WEB-INF\config\spring\context-hibernate.xml에 hibernateProperties 지정 부분에..
아래와 같이 Oracle로 되어 있으신지 확인해 보십시오..
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
추가적으로 hibernate 설정파일(jtrac.hbm.xml)에 locked 속성에 대한 컬럼 지정을 다음과 같이 보다 세분화하여 적용해보셔도 될 것 같습니다.
기존 : <property name="locked" column="locked" type="true_false"/>
변경 : <property name="locked" type="true_false">
<column name="locked" sql-type="varchar2" length="1" />
</property>
그럼.. 즐거운 하루되십시오.
감사합니다.