반응형

간만에 aop사용하다가 별것도 아닌데 삽질을 좀 했다

-> AOP 적용중 다음과 같은 에러 발생

Caused by: java.lang.IllegalArgumentException: Pointcut is not well-formed: expecting ')' at character position 0
@annotation(im.toss.server.tuba.messenger.system.ElasticSearchDocumentSync
^

-> 에러 발생 Poinctcut 코드

 

-> 문제 해결 > annotation 괄호가 제대로 안닫혀있었음...😅

반응형
반응형

 

pip3 로 pymysql 깔고 스크립트 실행했는데도 다음과 같은 에러가 날경우 ModuleNotFoundError: No module named 'pymysql'

$ pip3 install pymysql
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: PyMySQL in /Library/Python/3.8/site-packages (1.0.2)

내용보면 '-m pip'와 함께 실행해줄 것을 권고하고 있다.

> sudo python3 -m pip install pymysql
https://stackoverflow.com/questions/62968439/modulenotfounderror-no-module-named-pymysql-in-jupyter

로 다시 설치해주도록 하자~

반응형
반응형

pip3 install pymysql 시 'ModuleNotFoundError: No module named 'pip._vendor.packaging' 에러

Traceback (most recent call last):
  File "/usr/local/bin/pip3", line 5, in <module>
    from pip._internal.cli.main import main
  File "/usr/local/lib/python3.9/site-packages/pip/_internal/cli/main.py", line 9, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/usr/local/lib/python3.9/site-packages/pip/_internal/cli/autocompletion.py", line 10, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/usr/local/lib/python3.9/site-packages/pip/_internal/cli/main_parser.py", line 8, in <module>
    from pip._internal.cli import cmdoptions
  File "/usr/local/lib/python3.9/site-packages/pip/_internal/cli/cmdoptions.py", line 21, in <module>
    from pip._vendor.packaging.utils import canonicalize_name
 ModuleNotFoundError: No module named 'pip._vendor.packaging'

 

해결방법
> curl -sS https://bootstrap.pypa.io/get-pip.py | sudo python3
> type pip3
> hash -r
> sudo pip3 install pymysql

반응형
반응형

springboot버전에 맞지 않는 spring cloud dependency를 추가하게 되면 다음과 같은 에러메세지를 만난다.

org.springframework.beans.factory.BeanCreationException: Error creating bean with name
	'configurationPropertiesBeans' defined in class path resource 
    [org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration.class]:
    Bean instantiation via factory method failed; nested exception is org.springframework.beans
	.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.conte
    xt.properties.ConfigurationPropertiesBeans]: Factory method 'configurationPropertiesBeans' threw exception; nested exception is java.lang.NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(Constr
    uctorResolver.java:658) ~[spring-beans-5.3.12.jar:5.3.12]

.
.
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate 
	[org.springframework.cloud.context.properties.ConfigurationPropertiesBeans]: 
    Factory method 'configurationPropertiesBeans' threw exception; 
    nested exception is java.lang.NoClassDefFoundError
Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata

 

따라서 아래의 표와같이 springboot version에 맞는 springcloud version을 맞춰주도록 하자~!

Release TrainBoot Version

2020.0.x aka Ilford 2.4.x, 2.5.x (Starting with 2020.0.3)
Hoxton 2.2.x, 2.3.x (Starting with SR5)
Greenwich 2.1.x
Finchley 2.0.x
Edgware 1.5.x
Dalston 1.5.x

 

반응형
반응형

kotlin에서 jpa를 사용할 때 다음과 같은 에러가 난다면 해당 클래스에 Serializable을 상속받고 @IdClass(클래스명.class)를 선언해주자

에러발생코드

Caused by: org.hibernate.MappingException: Composite-id class must implement Serializable

위와 같은 에러 발생

문제 해결을 위해서 아래와 같이 코드 추가

아 그리고 composite key로 구성할 column에는 모두 @Id 애노테이션을 달아주어야 한다.

반응형
반응형

 

소스코드에서 우측 마우스 클릭
나오는 팝업창에서 Run 실행

반응형
반응형
No ParameterResolver registered for parameter in constructor...
No ParameterResolver registered for parameter [......] in constructor 
[public ......org.junit.jupiter.api.extension.ParameterResolutionException: 
No ParameterResolver registered for parameter

테스트 코드를 짜다가 다음과 같은 에러가 발생했는데 해결책과 설명을 잘 정리해놓은 블로그가 있어서 기록용으로 남겨본다.

https://minkukjo.github.io/framework/2020/06/28/JUnit-23/

 

JUnit 5 + Kotlin 테스트 클래스에서 생성자 주입 이슈

서론

minkukjo.github.io

 

반응형

'Programming > Kotlin' 카테고리의 다른 글

kotlin jpa comopsite key Serializable error  (0) 2021.09.15
반응형

간단한건데 해당 옵션을 모르면 헤메는 경우가 있어 기왕 관련 작업한거 정리해보려 한다.

일반적으로 쉘스크립트에서 파일이 존재하는지 확인하고 싶다면 아래처럼 사용하면 된다.

if[ -e $FileName ]; then
	echo "file exist"
else
	echo "file not exist;
fi

주요 옵션 몇개만 살펴보자면

-c : 파일이 존재하고 특수문자가 있는지 체크 (File exists and is character special)

-e : 파일이 존재 하는지 체크 (File exists)

-d : 파일이 존재하고 파일이 폴더인지 체크 (File exists and is a directory)

-f : 파일이 존재하고 보통 파일인지 체크 (File exists and is a regular file)

-h : 파일이 존재하고 symbolic link 파일인지 확인 (File exists and is a symbolic link (same as -L)

-r : 파일이 존재하고 read 가능한 파일인지 확인 (File exists and read permission is granted)

-w : 파일이 존재하고 쓰기 가능한 파일인지 확인 (File exists and write permission is granted)

-s : 파일이 존재하고 0size 파일이 아닌지 체크 (File exists and has a size greater than zero)

 

반응형
반응형

스프링부트 사용하면서부터 RestTemplate을 많이 사용하여 API개발을 해왔었다.

하지만 최근에 알게된 사실은 블로킹 API로 리액티브 기반의 애플리케이션에서의 성능을 떨어트리는 원인이 될 수 있다는 걸 알게 되었다. 또한 Spring5.0버전부터는 RestTemplate은 유지모드로 변경되고 향우 deprecated될 예정이라고 한다.

따라서 대안으로 Spring에서는 WebClient사용을 권고하고 있으며 다음과 같은 장점이 있다.

  • Non-blocking I/O
  • Reactive Streams back pressure
  • High concurrency with fewer hardware resources
  • Functional-style, fluent API that takes advantage of Java 8 lambdas
  • Synchronous and asynchronous interactions
  • Streaming up to or streaming down from a server

WebClient에 대한 자세한 사용법에 대해서 알고 싶다면 아래의 블로그 글을 참고하자.

medium.com/@odysseymoon/spring-webclient-%EC%82%AC%EC%9A%A9%EB%B2%95-5f92d295edc0

 

Spring WebClient 사용법

Spring 어플리케이션에서 HTTP 요청을 할 땐 주로 RestTemplate 을 사용했었습니다. 하지만 Spring 5.0 버전부터는 RestTemplate 은 유지 모드로 변경되고 향후 deprecated 될 예정입니다.

medium.com

 

스프링공식문서

www.baeldung.com/spring-webclient-resttemplate

 

Spring WebClient vs. RestTemplate | Baeldung

Learn how to make server-side HTTP calls using WebClient and RestTemplate.

www.baeldung.com

 

반응형

+ Recent posts