12월, 2015의 게시물 표시

[UnitTest] 에서 andDo(print()) 사용 시 java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted() 에러 조치

문제 : 서블릿 3.0 을 사용하고 있음에도 버전 충돌이 생겨 테스트가 진행이 되지 않음 원인 : servlet 버전이 맞지 않았을 때 발생. spring 4.0 의 spring-test 에서는 servlet 3.0 스펙을 요구함 상태 : servlet-api-3.0 버전을 사용하고, web.xml 에도 3.0사용을 명시를 하였으나, HttpServletRequest.isAsyncStarted() 메서드가 없다는 에러가 계속 발생함. 조치 1 :  Maven reference 에 servlet-2.x 를 사용하고 있는지 확인 누가 사용하는지는 모르지만 servlet-api-2.5.jar 가 들어가 있는 것을 확인 조치 2 :  mvn dependency:tree -Dverbose -Dincludes=javax.servlet 명령어로 메이븐   의존 tree 검색 junit-runner 에서 servelt-api-2.5를 사용하고 잇는 것을 발견.  해당 버전 업데이트 하여 해결

[JDBC] 쿼리 후에 ResultSet 에 데이터가 있는지 확인하는 방법

외부 DB와 연동하는 코드에서 ResultSet에 데이터가 있는지 여부 아래와 같이 확인하였다. ResultSet rs = null; if(rs.next()){     rs.previous()     //조회 된 데이터를 DB에 저장 } MySQL에서 데이터를 불러올 때는 문제가 없었지만 MSSQL에서 커서는 전방향 전용 결과 집합에 부적합한 작업이 수행되었습니다.  라는   에러가 발생하였다. 이는 ResultSet 기본설정이 TYPE_FORWARD_ONLY 로 되어있기 때문이다. 아래와 같이 상수 두개를 선언해 주어 에러가 발생하지 않도록 조치하였다. 조치 방법은 2가지 이다. 1. 기본설정 변경 PreparedStatement pstmt = dbConnFactory.getConnection().prepareStatement(connectorManager.getCollectorConfig().getQuery(), ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); 2. 메서드 사용 rs.isBeforeFirst();  조회 된 데이터가 없으면 false 를 반환한다.

[Spring] Springfox-swagger 적용하여 API문서 자동 생성 하기(asciidoc, markdown)

이미지
pom.xml 에 dependency 및 plugin 추가         <dependency>             <groupId>io.springfox</groupId>             <artifactId>springfox-swagger2</artifactId>             <version>2.3.0</version>             <scope>test</scope>         </dependency>         <dependency>             <groupId>io.springfox</groupId>             <artifactId>springfox-staticdocs</artifactId>             <version>2.3.0</version>             <scope>test</scope>         </dependency>         <dependency>             <groupId>io.github.robwin</groupId>             <artifactId>swagger2markup</artifactId>             <version>0.9.1</version>             <scope>test</scope>         </dependency>         <plugins>             <plugin>                 <groupId>org.asciidoctor</groupId>      

[Android] Duplicate lib file copied in APK-META-INF/license.txt ”error in andorid studio

Android sdudio 로 빌드를 하던 중 아래와 같은 에러가 발생하였다. Duplicate lib file copied in APK-META-INF/license.txt ”error in andorid studio license.txt 부분에는 사실 다른 것들도 올 수 있다. 위와 같은 에러가 발생하는 이유는 2개 이상의 라이브러리들이 license.txt 를 가지고 있어 중복이 생기기 때문이다. build.gradle 에서 문제가 발생하는 부분을 아래와 같이 exclude를 해주면 해결 할 수 있다. packagingOptions { exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' } stack overflow:  Meta-files doesn't affect any programmatic functions of application. Meta files basically contains Textual information like legal-notice, Licences etc of open sources libraries. Excluding it will not affect any thing. When we use multiple 3rd party open source libraries, sometimes 2 or more projects has same named text files (Example: License.txt or Notice.txt or dependencies.txt). That causes the conflict