둘셋 개발!

[오류기록] java.net.SocketException: Invalid argument 본문

SPRING

[오류기록] java.net.SocketException: Invalid argument

23 2022. 9. 5. 18:08

spring boot 서버로 mongoDB를 연동하면서 다음과 같은 오류가 떴다.

 

Caused by: java.net.SocketException: Invalid argument
at java.base/sun.nio.ch.DatagramChannelImpl.disconnect0(Native Method) ~[na:na]
at java.base/sun.nio.ch.DatagramChannelImpl.disconnect(DatagramChannelImpl.java:1294) ~[na:na]
at java.base/sun.nio.ch.DatagramSocketAdaptor.disconnect(DatagramSocketAdaptor.java:134) ~[na:na]
... 107 common frames omitted

 


오류원인

구글링을 해보니 소캣에서 IPv6문제가 발생해서 나는 흔한 오류였다.

보통 java에서는 기본적으로 IPv6으로 연결이 되는데,  local pc에서는 IPv4로 연결을 함.

그래서 오류나 났던 것! 

 


해결

intelij를 사용하고 있는 경우 이렇게 하면 된다.

1. 상단바에 있는 startApp 옆에 있는 화살표를 눌러 Edit Configurations...클릭

 

2. Build and run 두번째 칸(ㅍ)에 다음과 같이 넣기

-Djava.net.preferIPv4Stack=true
-Djava.net.preferIPv4Addresses=true

 

만약 잘되지 않는다면 위의 사진에서 파란색 글씨인 Modify options눌러서 Add VM options를 누르면 된다.


참고자료

https://islet4you.tistory.com/entry/Springboot-IP4-설정하기

 

[Springboot] IntelliJ IP4 설정하기

일반적으로 로컬 피씨는 ipv6로 인식을 하고 있어서 변경해서 개발을 하는게 건강상으로 좋다. 현재 개발을 하는 툴이 Intellij 이어서 이 부분을 설정하는 것을 찾다가 발견해서 알려드립니다. 먼

islet4you.tistory.com

https://code-boki.tistory.com/59

 

IntelliJ Honey Tips 2

1. 서비스 탭이 안보일때 (못 찾을때) Alt + 8 Command + 8 번 누르면 바로 튀어나오니 걱정 ㄴㄴ 2. IPv6를 IPv4로 보고 싶을 때 기본적으로 IP 로깅을 하면 IPv6로 인식이 되어서 출력된다 테스트할 컨트롤

code-boki.tistory.com

https://stackoverflow.com/questions/8216713/java-net-socketexception-invalid-argument-connect

 

java.net.SocketException: Invalid argument: connect

My new laptop (Alienware m17x) throws a java.net.SocketException: Invalid argument: connect when I run the following basic code: Server.java: public static void main (String[] args) throws Exceptio...

stackoverflow.com