728x90


에러: javax.validation.ValidationException: HV000183: Unable to initialize 'javax.el.ExpressionFactory'.

해결방법:에러 발생시 하단의 라이브러를 추가 필요

 

pom.xml 파일 수정

<dependency>
    <groupId>javax.el</groupId>
    <artifactId>javax.el-api</artifactId>
    <version>3.0.0</version>
</dependency>

<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.el</artifactId>
    <version>3.0.0</version>
</dependency>

 

spring boot build.gradle 파일 수정

    compile('javax.el:javax.el-api:3.0.0')

    compile('org.glassfish:javax.el:3.0.0')

 

 

 

Reference

https://knight76.tistory.com/entry/javaxvalidationValidationException-HV000183-Unable-to-initialize-javaxelExpressionFactory-해결하기

 

728x90
728x90

Spring 프로젝트 생성시 Image, JS, CSS 등 정적 resource 파일을 지정된 폴더에서만 사용하도록 설정되어 있음.

(물론, 특별히 지정하면 외부경로 추가도 가능하기는 함)

 

1. 단순히 직접경로 입력하는 방식

 

@GetMapping(
  value = "/get-image-with-media-type",
  produces = MediaType.IMAGE_JPEG_VALUE
)
public @ResponseBody byte[] getImageWithMediaType() throws IOException {
    InputStream in = getClass()
      .getResourceAsStream("/com/baeldung/produceimage/image.jpg");
    return IOUtils.toByteArray(in);
}

 

+

@GetMapping : @RequestMapping(method = RequestMethod.GET) 의 축약형

IOUtils = Apach Commons (commons-io) 라이브러리 (pom에 의존성 추가해야함)

 

 

2. Controller에서 webapp 폴더 경로 찾아서 이미지 제공하는 방식

 

@RestController
public class ImageController {
	@Autowired
	ImageService imageService;

	@GetMapping(value = "/image/{imageName}.{extension}", produces = MediaType.IMAGE_PNG_VALUE)
	public @ResponseBody byte[] getImage(
		@PathVariable(name = "imageName") String imageName,
		@PathVariable(name = "extension", required = false, defaultValue = "png") String extension,
		HttpServletRequest request) throws IOException {
		String imagePath = request.getServletContext().getRealPath("resources/image/" + imageName + "." + extension);
		InputStream imageStream = new FileInputStream(imagePath);
		byte[] imageByteArray = IOUtils.toByteArray(imageStream);
		imageStream.close();

		return imageByteArray;
	}
}

 

 

 

+하다가 막힌 문제

HttpServletRequest의 getServletContext() 메서드 사용 문제 (tomcat이랑 servlet 버전 올리면 됨)

https://blog.naver.com/javaking75/220072102739

==> 이렇게 말고 그냥 'request.getSession().getServletContext().getRealPath'이렇게 써도 됨

 

 

Reference

https://blog.naver.com/k220j/220714945944

https://www.baeldung.com/spring-mvc-image-media-data

https://www.baeldung.com/spring-controller-return-image-file

https://countryxide.tistory.com/45 [배워서 남주자]

https://lazymankook.tistory.com/73

728x90
728x90

 

 

1. 지문인식 기능의 시작

- API 23버전 마시멜로부터 추가된 기능

- 따라서 프로젝트 설정도 마시멜로 이상으로 설정해야 적용 가능

 

2. 지문인식 기능

(1) API 27버전까지 사용하던 FingerprintManager 기능

1. 프로젝트 Manifest 파일에 지문인증 권한을 요청

2. 잠금화면이 고정된 기기에만 지문등록이 가능하므로 잠금화면 설정이 되어 있는지 확인

3. 폰에 하나 이상의 지문이 등록 되어 있는지 확인

4. FingerprintManager 클래의 인스턴스 생성

5. Keystore 인스턴스로 안드로이드 Keystore 컨테이너에 액세스

6. KeyGenerator 클래스로 암호화된 키 생성하여 Keystre에 저장

7. 앞 단계에서 생성된 키를 이용 Cipher 클래스 인터턴스 초기화

8.Cipher 인스턴스를 사용하여 CryptoObject를 만들고 FingerprintManger 인스턴스에 지정

9. FingerprintManager 인스턴스의 authenticate 메소드를 호출

10. 인증 프로세스에 의해 트리거 된 콜백을 처리 메소드 구현

 

[출처] 안드로이드 지문인증 사용하기(1) : Fingerprint Authentication|작성자 코스모스

 

(2) API 28버전부터 통합된 BiometricPrompt방식

 

구글문서

https://developer.android.com/reference/android/hardware/biometrics/BiometricPrompt.html

 

구현방법

https://new-spring-bom.tistory.com/3

 

 

Reference

https://blog.naver.com/cosmosjs/221381903806

https://namget.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%A7%80%EB%AC%B8%EC%9D%B8%EC%8B%9D-%EB%B3%80%EA%B2%BD%EC%A0%90

https://source.android.com/security/biometric

https://new-spring-bom.tistory.com/3

https://developer.android.com/reference/android/hardware/biometrics/BiometricPrompt.html

 

728x90
728x90

1. 문제 상황

 

Java compiler level does not match the version of the installed Java project facet.

 

 

2. 원인

컴파일러의 레벨과 Eclipse설정된 버전이 일치되지 않아서 생기는 문제

==> properies 수정 필요

 

 

3. 해결방법

(1) project > properties > java Compiler > java 버전 확인

 

(2) project > properties > Project Facets > Java 를 자신이 사용하고있는 컴파일러 버전과 맞춰야함

 

 

자바버전을 일치시키면 오류가 삭제됨

 

 

Reference

https://dev114.tistory.com/362

http://myblog.opendocs.co.kr/archives/1566

728x90

+ Recent posts