반응형

운영하는 서버에서 파일다운로드 받기위해 url요청을하면 다른서버의 파일다운로드 받아오는 부분에서 해당 오류가 발생하였다.

 

I/O error on POST request for "": Read timed out; nested exception is java.net.SocketTimeoutException: Read timed out

 

구글링을 통해 여러방법을 몇시간 삽질했지만 나의 경우에는 해당 파일이 존재하지 않아서 발생하였다.

 

DB에 있는 파일정보의 파일인덱스를 요청해서 다운로드 요청한 것이었는데, 해당 파일이 당시 어떤 오류로인한 업로드처리가 안됬었던 모양.

 

리눅스서버의 파일업로드경로를 가보니 해당파일이 존재하지 않는것을 확인한 후..

 

서버에 존재하는 파일의 파일인덱스를 요청해서 확인해보니 다운로드가 잘되는 것을 확인하였다. 

 

결국 파일이 존재하지 않아서 다운로드할 파일이 없어서 타임아웃이 된 것이었다.

반응형
반응형

 

query did not return a unique result: 3

해당오류는 select 결과를 VOclass형태로 받는 부분에서 오류가 났다

 

VOclass return = repository.findByXXX(param);

 

select 결과가 row 수가 3인데 List<VOclass> 형태로 받지않고 VOclass로 받아서 생긴 오류였다.

 

만약에 select 결과가 여러 row를 받는게 맞으면 List<VOclass>형태로 타입을 변경해주면되고,

 

아니면 관련 여러 row가 나오지않도록 소스코드를 수정하고 필요없는 데이터는 삭제해주면된다.

 

반응형
반응형
Caused by: java.lang.IllegalArgumentException: More than one fragment with the name [spring_web] was found. This is not legal with relative ordering. See section 8.2.2 2c of the Servlet specification for details. Consider using absolute ordering.

 

이클립스에서 maven 프로젝트 톰캣 실행시 위와 같은 오류가 발생하였다.

 

1. 해당 프로젝트 WEB-INF/web.xml에서 맨 상단에 있는 버전을 2.5→ 3.0으로 변경하였다.

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://Java.sun.com/xml/ns/j2ee" version="3.0" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_3_0.xsd">

 

2.  그리고 아래처럼 display-name 태그 바로 밑에 absolute-ordering 태그를 추가하였다.

<display-name>WEB</display-name>
<!-- display-name 아래에 -->
<absolute-ordering\>
<!-- absolute-ordering 추가 -->

 

반응형
반응형

https가 적용된 사이트에서 iframe에 http url이 있어서 해당 iframe이 동작하지 않았다.

 

콘솔로그를 확인해보니, 콘솔창에서 아래와 같은 오류가 나왔다.

 

Mixed Content: The page at '
https://www.-----.---
' was loaded over HTTPS, but requested an insecure frame '
http://www.-----.---'. This request has been blocked; the content must be served over HTTPS.

 

볼 키워드는

Mixed Content

This request has been blocked

the content must be served over HTTPS.

 

결국은 '혼합된 컨텐츠다, 해당 요청은 차단됬다, 컨텐츠는 https여야한다.' 이다.

 

즉, https를 사용하는 사이트에서 컨텐츠부분에 http통신하는 부분이 있어 해당 http요청이 차단되었다는 의미이다.

 

https 으로 보안이 되있는데, 보안에 취약한 http와 통신할 수 없다는 것이다.

 

해결방법

★ http요청을 https로 변경한다.(해당 url이 https를 제공하지 않는다면 이 방법은 패스)

 

 

또다른 해결방법

★ http 통신하는 html/jsp에 아래와 같은 코드를 head태그 영역에 넣어준다.

 

<head>
	<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" >
</head>

 

 

HTTP Content-Security-Policy(CSP) upgrade-insecure-requests지시문은 사이트의 모든 비보안 URL(HTTP를 통해 제공되는)을 보안 URL(HTTPS를 통해 제공되는)로 대체된 것처럼 처리하도록 사용자 에이전트에 지시합니다. 이 지시문은 재작성해야 하는 안전하지 않은 레거시 URL이 많은 웹 사이트를 위한 것입니다.

 

 

반응형
반응형

해당 오류는 만료된 SSL 인증서를 사용하고 있어서 나오는 오류이다.

 

그래서 인증서정보를

 

자물쇠 버튼을 누르고

해당 항목을 눌러 확인해보니

갱신되어있는 상태다 

 

새로고침을 계속해보다보니

이번엔 쌩뚱맞게 갱신이 안되있다고한다

 

그런데 분명 나는 SSL인증서를 갱신을 했고 확인을 했었다.

 

HAproxy로 4개톰캣을 라운드로빈 중이라 톰캣쪽의 문제라 추측

(haproxy로 라운드로빈으로 돌아가니까, 특정 톰캣은 설정이 만료된 ssl 사용하고있어서 나오는 오류라 추측. )

 

그러나 HAproxy의 jks를 확인해봤으나 설정에 문제는 없어보였다. (4개 톰캣 모두 동일한 설정되있음.)

 

그럼 이럴땐 reboot로 깔끔하게 재부팅한다

 

재부팅하고 톰캣 살려주고 haproxy도 시작해주니 해당 오류가 사라졌다.

 

혹시라도 ERR_CERT_DATE_INVALID 해당 오류가 생겼다면 ssl 만료 여부를 확인하고

 

갱신을 했는데도 해당 오류가 뜬다면 깨끗하게 reboot를 하자.

반응형
반응형
[WARNING] 095/190652 (2847) : Setting tune.ssl.default-dh-param to 1024 by default, if your workload permits it you should set it to at least 2048. Please set a value >= 1024 to make this warning disappear

haproxy 실행하면 해당 WARNIG이 나온 상황이다.

 

나의 경우엔 openssl을 사용했고 요청이 haproxy로 들어온다.

 

이를 해결하기 위해서

 # haproxy 파일 편집기로 열기
 vi /etc/haproxy/haproxy.cfg 
 
 # global 부분에 하위쪽 보면
 stats socket /var/lib/haproxy/stats
 # 이런게있음. 그 아래에
 ssl-default-bind-options no-sslv3
 tune.ssl.default-dh-param 2048
 
 # 저장하고 나와서
 # haproxy 재시작
 systemctl restart haproxy 
 # 또는
 /usr/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid

재시작 후에 해당 WARNIG이 사라졌다.

반응형
반응형

배포하기 전에

 

war 파일에서 "META-INF/war-tracker" 파일을 제거한 후

 

다시 war로 묶어서 배포하면 됩니다.

반응형
반응형

shell-init: error retrieving current directory: getcwd: cannot access parent directories: 그런 파일이나 디렉터리가 없습니다

 

처음보는 오류가 발생 ~

 

번역기 돌려보니

shell-init: 현재 디렉토리 검색 오류: getcwd: 상위 디렉토리에 액세스할 수 없습니다.

라는 뜻

 

나의 경우엔 ftp로 톰캣 war를 배포할때 잘못 배포된것 같긴한데 뭐가 잘못됬는지몰라서

 

관련 디렉토리를 삭제하고 다시 war배포하고 deploy 한 후

 

톰캣 재기동시 나온오류였다.

 

 

삭제했던 디렉토리에서 쉘접속한 상태로 머물러 톰캣 시작 실행파일인 startup.sh 를 실행시키니까

 

너가 있는 곳은 존재하지 않는곳인데 거기서 실행하지 말라는 의미이다

 

그래서 루트로 한번 갔다가 다시 startup.sh 를 실행하니까 오류가 사라짐

반응형

+ Recent posts