프로퍼티를 읽어오는 방법을 모르겠습니다.
- 작성자 :
- 강*석
- 작성일 :
- 2023-01-26 19:04:40
- 조회수 :
- 1,405
- 구분 :
- 기타
- 진행상태 :
- 완료
Q
import com.siot.IamportRestClient.IamportClient;
import com.siot.IamportRestClient.exception.IamportResponseException;
import com.siot.IamportRestClient.response.IamportResponse;
import egovframework.rte.fdl.property.EgovPropertyService;
@Controller
@RequestMapping(value="/web/pay/")
public class PayController {
private IamportClient api;
@Resource(name="propertiesService")
private EgovPropertyService propertyService;
public PayController() {
/*
Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate
[com.touchtop.web.pay.web.PayController]: Constructor threw exception; nested exception is java.lang.NullPointerException
아래와 같이 생성자에서 property에 접근해서 읽어올수 있는 방법은 없을까요?
*/
String pg_api_key = propertyService.getString("Globals.pg_api_key");
String pg_api_key_secret = propertyService.getString("Globals.pg_api_key_secret");
// REST API 키와 REST API secret 를 아래처럼 순서대로 입력한다.
this.api = new IamportClient(pg_api_key, pg_api_key_secret);
}
properties
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<!-- 프로퍼티 정보 설정 -->
<bean name="propertiesService" class="egovframework.rte.fdl.property.impl.EgovPropertyServiceImpl" destroy-method="destroy">
<property name="properties">
<map>
<entry key="Globals.pg" value="nice.nictest00m"/>
<entry key="Globals.pg_api_key" value="54623271XXXX"/>
<entry key="Globals.pg_api_key_secret" value="54623271470063663XXXXXX"/>
그럼 피드백 기다리겠습니다.
감사합니다.
import com.siot.IamportRestClient.exception.IamportResponseException;
import com.siot.IamportRestClient.response.IamportResponse;
import egovframework.rte.fdl.property.EgovPropertyService;
@Controller
@RequestMapping(value="/web/pay/")
public class PayController {
private IamportClient api;
@Resource(name="propertiesService")
private EgovPropertyService propertyService;
public PayController() {
/*
Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate
[com.touchtop.web.pay.web.PayController]: Constructor threw exception; nested exception is java.lang.NullPointerException
아래와 같이 생성자에서 property에 접근해서 읽어올수 있는 방법은 없을까요?
*/
String pg_api_key = propertyService.getString("Globals.pg_api_key");
String pg_api_key_secret = propertyService.getString("Globals.pg_api_key_secret");
// REST API 키와 REST API secret 를 아래처럼 순서대로 입력한다.
this.api = new IamportClient(pg_api_key, pg_api_key_secret);
}
properties
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<!-- 프로퍼티 정보 설정 -->
<bean name="propertiesService" class="egovframework.rte.fdl.property.impl.EgovPropertyServiceImpl" destroy-method="destroy">
<property name="properties">
<map>
<entry key="Globals.pg" value="nice.nictest00m"/>
<entry key="Globals.pg_api_key" value="54623271XXXX"/>
<entry key="Globals.pg_api_key_secret" value="54623271470063663XXXXXX"/>
그럼 피드백 기다리겠습니다.
감사합니다.
환경정보
-
- OS 정보 : ubuntu18.04
- 표준프레임워크 버전 : 3.8.0
- JDK(JRE) 정보 : 1.8
- WAS 정보 : tomcat v8.5
- DB 정보 : mariadb
- 기타 환경 정보 : iamport 결제 연동작업중
A
안녕하세요.
표준프레임워크센터입니다.
질문하신 내용의 코드와 오류메시지를 보면
생성자 내부에서 @Resource 요소를 호출하게 되면
@Resource 요소가 구성되기 전에 호출되므로 로그와 같이
NullPointerException 이 발생되므로
다른 방식으로 처리하시기 바랍니다.
프로퍼티 구성에는 문제가 없습니다.
감사합니다.
표준프레임워크센터입니다.
질문하신 내용의 코드와 오류메시지를 보면
생성자 내부에서 @Resource 요소를 호출하게 되면
@Resource 요소가 구성되기 전에 호출되므로 로그와 같이
NullPointerException 이 발생되므로
다른 방식으로 처리하시기 바랍니다.
프로퍼티 구성에는 문제가 없습니다.
감사합니다.