# Caver-java 1.5 code-gen의 결과 wrapper가 여전히 이전 api 사용

**URL:** https://devforum.kaia.io/t/caver-java-1-5-code-gen-wrapper-api/358
**Category:** Caver
**Tags:** caver-java
**Created:** [9월 21, 2020, 8:44오전 UTC](https://devforum.kaia.io/t/caver-java-1-5-code-gen-wrapper-api/358 "2020-09-21T08:44:36Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![jh.k](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/jh.k/32/246_2.png) [@jh.k](https://devforum.kaia.io/u/jh.k)
#### Post date: [9월 21, 2020, 8:44오전 UTC](https://devforum.kaia.io/t/caver-java-1-5-code-gen-wrapper-api/358/1 "2020-09-21T08:44:36Z")

</div>

안녕하세요,  
caver-java 1.5.0을 이용해서 개발하려고 하는 중,  
smartcontract의 java wrapper를 생성하기 위해서 caver-java의 codegen 기능을 이용하려고 했더니…

1. homebrew를 통해 설치한 caver-java (버전 확인해보니 아직 1.3.1)을 이용해서 생성했더니  
아직 1.5.0의 api가 반영되지 않아서,

2. 직접 caver-java 레포지토리에서 체크아웃한 master 브랜치를 빌드해서  
($ ./gradlew :console:shadowDistZip) 생성한 caver-java 실행파일을 이용해도  
여전히 1.5.0의 api가 아닌 1.4.x의 api를 사용하는 wrapper 가 생성되고 있는데요…

언제쯤 caver-java 1.5.0 api에 맞춰진 wrapper를 생성해주는 codegen이 지원될까요?

---

<div class="post-metadata">

### Author: ![jh.k](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/jh.k/32/246_2.png) [@jh.k](https://devforum.kaia.io/u/jh.k)
#### Post date: [9월 21, 2020, 11:30오전 UTC](https://devforum.kaia.io/t/caver-java-1-5-code-gen-wrapper-api/358/2 "2020-09-21T11:30:52Z")

</div>

음… 아직 1.5.x를 사용하면 안되는걸까요?

wrapper 생성 말고도,  
가이드에 쓰여 있는대로 Klaytn노드 연결을 위한 Caver 생성을 아래와 같이 하면  
`Caver caver = new Caver(Caver.BAOBAB_URL);`  
해당 caver로 생성한 TransactionManager를 통해서 `TransactionManager.executeTransaction(TransactionTransformer transactionTransformer)`  
와 같은 트랜잭션 수행을 위한 메소드 수행 시,  
1.5.x에서는 deprecated 된 caver.klay() 등을 통해서 JSON-RPC API 호출이 일어나는데  
위의 new를 통한 Caver 생성을 하게 되면 klay가 null이기 때문에 NullPointerException이 발생하게되버리네요;

---

<div class="post-metadata">

### Author: ![Kale](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/kale/32/148_2.png) [@Kale](https://devforum.kaia.io/u/Kale)
#### Post date: [9월 22, 2020, 12:45오전 UTC](https://devforum.kaia.io/t/caver-java-1-5-code-gen-wrapper-api/358/3 "2020-09-22T00:45:43Z")

</div>

안녕하세요. 먼저 클레이튼 포럼에 질문을 남겨주셔서 감사드립니다. 🙂

**1.5.x의 api를 지원하는 codegen 업데이트 일정**  
아직은 1.5.x api를 지원하는 codegen 업데이트의 일정이 잡힌 것이 없습니다.  
하지만, 1.5.x버전으로 업데이트 되면서 Contract를 배포 / 실행하는 방법이 기존의 codegen을 통해 contract wrapper class를 생성하는 방법만큼 편하게 인터페이스가 바뀌었습니다.

1.5.x에서 Contract를 실행 / 배포하는 방법이 궁금하시다면 1.5.x에서 사용되는 [Getting started](https://docs.klaytn.com/bapp/sdk/caver-java/getting-started#smart-contract)의 문서를 참고 부탁드립니다.

**Caver instance의 NullPointer Exception 발생관련**  
caver-java는 1.5.x로 버전이 업데이트되면서 [KIP 34: Klaytn SDK Common Architecture](https://kips.klaytn.com/KIPs/kip-34)가 적용되었고 이전버전(1.4버전)과 비교해봤을 때 사용성 및 인터페이스가 달라졌습니다.

위와 같은 이유로 발생한 인터페이스의 변경으로 인해 1.5.x대 버전으로 업데이트를 해도, 기존에 하위 버전을 사용하던 사용자분들을 위해 코드를 그대로 남겨두긴 했습니다만, 1.5.x에서 지원하는 클래스 및 method를 1.5버전 이하에서 사용되던 method와 혼용해서 사용하면 안됩니다.

1.5버전 이하에서는 Caver 클래스의 instance를 만들때 아래와 같이 만듭니다.  
`Caver caver = Caver.build(Caver.BAOBAB_URL);`

1.5버전 이하에서의 사용법이 알고싶으시면 caver-java의 [Getting started 1.4](https://docs.klaytn.com/bapp/sdk/caver-java/v1.4.0/getting-started_1.4.0) 문서를 참고해주시면 감사하겠습니다.

추가 질문이 있으시면 다시 질문 부탁드리겠습니다. 🙂
