결과 ::::  콘솔에 찍힌 쿼리와 결과목록

파라미터 적용된 "쿼리"와 조회"결과" 목록

개발을 하다보면 디버그 모드만으로 해결되지 않을때가 있다

급할수록, 쿼리에서 분기처리가 많을수록 더 골치다

 

직빵으로 "지금 무슨 쿼리를 어떻게 탔으며 그 결과가 뭐다" 를 콘솔에 보여주는게 log4jdbc-log4j2 이거다

 

예전에 몇번 설정하려고 했는데

검색하면 다 pom.xml을 말하고.. 내프로젝트는 메이븐이 아니여서 pom.xml이 없는데.... 그렇게 구글링만 하다가 포기했다

 

근데 편리함을 맛본자로서 포기가 안됐다. 해본다

이 분의 블로그를 참고해서 했다  https://kimvampa.tistory.com/63

 

[Spring][06] Log4jdbc-log4j2 추가 및 설정방법

개인 공부 후 자료를 남기기 위한 목적이기에 내용 상에 오류가 있을 수 있습니다. git주소(Oracle DB) : https://github.com/sjinjin7/blog_study git주소(MySQL DB) : https://github.com/sjinjin7/blog_study-MYSQL-base- 목표 Log4

kimvampa.tistory.com

 

 

 

 

 

==================================================================================

1. 라이브러리 다운

 

일단 나는 메이븐 프로젝트가 아니기에 pom.xml 적용이 아니고

라이브러리 다운받아서 프로젝트에 넣기로 결정했다

https://log4jdbc.brunorozendo.com/download.html

 

Log4jdbc-log4j2

log4jdbc4-log4j2-1.0.jar log4jdbc-log4j2 1.0 jar for JDBC 4 (JDK 1.6 and 1.7) Sep 4, 2012 134.39KB

log4jdbc.brunorozendo.com

 

2.프로젝트 라이브러리 폴더에 드래그&드롭

 

3.log4jdbclog4jdbc.log4j2.properties 파일 생성

src/main/resources 경로에 log4jdbclog4jdbc.log4j2.properties 파일을 생성  (생성방법은 윗분이 아주 자세하게 설명해주셨다)

 

4.context-datasource.xml > jdbc 연결정보 수정

 

참고 블로그는  "root-context.xml" 를  수정하라고 했지만 내 프로젝트는 jdbc연결이 context-datasource.xml 에 있다

( driverClassName 으로 프로젝트 전체 검색해서 발견해냈다 ..허허 )

 

기존에는 

<property name="driverClassName" value="${Globals.DriverClassName}"/>
<property name="url" value="${Globals.Url}" />

변경 후

<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"/>
<property name="url" value="jdbc:log4jdbc:oracle:thin:@xxx.xxx.xxx.xx:xxxx:XE" />

 

================================================================================== 

여기서부터는 시행착오다

 

프로젝트 신나게 돌렸다~     .. 안된다 =_=

앗차차 log4j2.xml 변경도 해줘야겠지????  여기저기 블로그 참고해서 콘솔에 찍히도록 수정했다 .. 안된다 ==_==

계속 log4j2.xml 변경했다 안된다.. 허허

 

원인 :::::: 

src/main/resources/log4jdbclog4jdbc.log4j2.properties   

src/main/log4jdbclog4jdbc.log4j2.properties 로  경로를 변경했다

 

이유는 잘 모른다.

src/main/resources 저 경로를 해줘야하는 이유가 뭘까 생각하다가

내 log4j2.xml은src/main/log4j2.xml 경로에 있기때문에.. 갑자기 그냥 맞춰줘야지 않을까 생각해서 변경했다

 

잘된다!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

==================================================================================

 

추가적으로 나의 log4j2.xml 을 첨부한다

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d %5p [%c] %m%n" />
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="java.sql" level="INFO" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
        <Logger name="java.audit" level="OFF" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
        <Logger name="jdbc.sqlonly" level="OFF" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
        <Logger name="jdbc.resultsettable" level="INFO" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
        <Logger name="jdbc.resultest" level="OFF" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
        <Logger name="jdbc.connection" level="OFF" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
        <Logger name="egovframework" level="ERROR" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
		  <!-- log SQL with timing information, post execution -->
	    <Logger name="jdbc.sqltiming" level="INFO" additivity="false">
	        <AppenderRef ref="console" />
	    </Logger>
	    <Logger name="org.springframework" level="ERROR" additivity="false">
	        <AppenderRef ref="console" />
	    </Logger>
        <Root level="ERROR">
            <AppenderRef ref="console" />
        </Root>
    </Loggers>
</Configuration>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

실서버 반영을 했는데,  500에러만 뜬다

누락된 파일은 없었고, 에러 로그 확인

 

=======================================================================================

07-Mar-2024 11:43:12.573 정보 [main] org.apache.catalina.core.ApplicationContext.log Initializing Spring FrameworkServlet 'action'
07-Mar-2024 11:43:14.247 심각 [main] org.apache.catalina.core.ApplicationContext.log 서블릿 [action]을(를) 위한 Servlet.init() 호출이 예외를 발생시켰습니다.
 java.lang.NoClassDefFoundError: egovframework/xxxx/aaaaa/web/JavaController$1
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
        at java.lang.Class.getDeclaredMethods(Class.java:1975)
        at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:571)
        at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:490)
        at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:474)

...  어쩌고 저쩌고 쌸라쌸라

=======================================================================================

 

아니.. 내가 반영한 파일들중에   

egovframework/xxxx/aaaaa/web/JavaController.class 얘는 있지만

egovframework/xxxx/aaaaa/web/JavaController$1.class 얘는 없는데!!! 할필요도 없는데 오 ㅐ 자꾸 못찾는다고 하는거냐고!!!!!!!!!!!!!!!!!!

 

그러다 문득 라이브러리를 추후에 반영해서.. 해당 부분이 컴파일 되지 않은건가

구글링 하니까 다들 clean해라, class폴더 삭제하고 다시 빌드해라...

이것저것 요것저것하면서 테스트하느냐 파일들을 반영하고, 원복하고 5번도 더 했다..

 

수석님 찬쓰!!!!!!!!!!!!!!!!!!!!!!!!!!! 물어본지 30초만에 해결답이 돌아왔다

JavaController$1.class 파일도 함께 반영해줘라

 

...? 도당체 왜..?

[JAVA] 내부클래스( inner class ), 익명클래스( anonymous class )

출처: https://tadaktadak-it.tistory.com/19 [타닥타닥 IT:티스토리]

 

이렇게 있다고 한다.. 

JavaController.java 파일 안에  'TypeReference' 이걸 사용 하는 부분이 있는데 ..

그 때문에 내부 클래스가 어쩌고저쩌고해서

 

컴파일하면  JavaController.class 과 JavaController$1.class  두개로 생성되고, 두개 다 반영해줘야 하는것이다 

 

또 하나 배웠다. 또 한뼘 자랐다

ㅈㅔ대로 하자 공부하자

 

 

 

 

 

 

 

 

 

 

 

 

 

요상한 에러 발생

이클립스에서 톰캣 띄웠더니 에러발생....

 

git에서 같은 프로젝트를 내려받아서 셋팅을 했는데

내PC는 잘되고, 내부망 로컬에서는 에러가 난다

 

근데 또, 내부망에서 회사 개발DB로 붙으면 잘 동작한다

이것저것 추적을 하다보니 globals.properties  여기가 문제인건 알겠는데.. 도통 원인을 모르겠고

해당 에러를 검색하면 모든 블로그에서는 clean을 하라고만 나온다....

그래서 프로젝트가 없어질때까지 클린..클린 클린.. 또 클린클린... 할수있는 클린이란클린은 다했다...

프로젝트 삭제하고 git에서 새로 내려받기를 대여섯번쯤...

 

수석님께 질문했는데 3초만에 해결됐다

 

결론은..!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

연결하려는 테스트db는 oracle 9i 버전이기때문에 ojdbc14.jar를 사용하고 있었고

내가 내려받은 git은 ojdbc6.jar 을 사용하고 있었기 때문이다..

 

3일을 날렸고.. 7일 날리려던거 애꼈다.. 허허

 

 

 

 

잘되던 웹사이트가 접속이 안된다..

tomcat 재기동도 했고 apache 재시작도 하려고 했으나 apache가 재시작이 안된다

 

# systemctl start httpd

 

FAILURE  글자와 함께 발견된 에러 

 

-------------------------------------------------------------------------------------------------

Failed to start The Apache HTTP Server

httpd.service: control process exited, code=exited status=1

Failed to start The Apache HTTP Server

-------------------------------------------------------------------------------------------------

 

폭풍 블로그 검색....

에러 로그를 확인하라고 한다.. 에러 로그는 /var/log/httpd/error-log 에 있다

-------------------------------------------------------------------------------------------------

SSL Library Error: -8181 Certificate has expired

Unable to verify certificate 'Server-Cert'. Add "NSSEnforceValidCerts off" to nss.conf so the server can start until the problem can be resolved.

-------------------------------------------------------------------------------------------------

인증서가 만료되었다는 에러라고 한다...허허..

해결방법은 nss.conf 파일을 지우면 된다고 한다

(그치만 해결되고 나서 보니.. 지우는것도 방법이긴하지만, "NSSEnforceValidCerts off " 처리를 하는게 더 안전하지 않을까라는 생각을 한다)

 

# cd /etc/httpd/conf.d

# rm nss.conf

 

파일삭제 후 

# systemctl start httpd 

정상 동작함을 확인했다

 

 

참고한 블로그

https://m.blog.naver.com/adolkristin/220783520506

 

CentOS7 httpd 시작이 안됨 : SSL Library Error

CentOS7 버전 설치(네트워크 서버 용) 하니 아파치 2.4버전이 기본으로 설치되어있다. CentOS7 부터...

blog.naver.com

 

해결 후, 다른 방법도 있다는것을 알아내었다

https://newdataflow.tistory.com/59

 

웹사이트 접속불가 'Server-Cert'. Add "NSSEnforceValidCerts off" to nss.conf

1. 증상 어느날 갑자기 잘 되던 사이트가 안 들어가진다. 2. 아파치 로그 확인 아래와 같은 에러 메시지들 발견 [root@test logs]# tail -f error_log [Mon Dec 03 09:32:38 2018] [error] Unable to verify certificate 'Server-Ce

newdataflow.tistory.com

 

 

 

...폭풍 블로그 검색을 하고 주변 수석님께 여쭤봐서 어찌저찌 해결은 했다만..

내가 뭘 제대로 알고 이해하고  하는것 같진 않다..

 

에러가 나면 에러 검색해서 블로그에서 알려주는대로 조치하고 해결되면 끝이고

mod_nss가 뭔지 mod_ssl 이 뭔지

apache와 tomcat을 제대로 알긴아는건지 모르는건지..

 

부족함을 많이 느끼는 하루..ㅠㅠ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

이클립스에서 git 프로젝트를 import 받았다

전달받은 환경으로 셋팅도 했다. 근데 java 파일에서 알수 없는 엑박이 왕창난다

파일을 열어봐도 라이브러리 import 하는 부분에서 에러가 난다

 

 

 

 

 

 

 

 

 

잘 기동되는 프로젝트와 비교해봤다

내 프로젝트에는 아래 이미지에서 보이는 "Web App Libraries"가 없다

 

 

 

 

 

구글링해서 해당 부분 원인을 찾았지만 내 프로젝트는 다 잘되어있는것같은뎁..

그래서 사수님께 자문을 구했다

프로젝트를 import받고 daynamic web project로 컨버팅을 했는데 그때, 경로가 잘못 잡혀 있는 문제가 있었다

 

아래와 같이 해결할 수 있다========================================================

저기 Daynamic Web Module 을 체크 해제  후 apply 후 다시 체크하면

아래쪽에 "Further configuration available..."이 보인다 클릭한다

 

저기 Content directory 경로를 나는 "WebContent"로 맞춰주었다

 

그러니 엑박이 다 사라지고 기동이 되었다

 

SVN 레포지토리 연결하려는데 에러남

===========================================에러내용===================================

SVN: '0x00400006: Validate Repository Location' operation finished with error: Selected SVN connector library is not available or cannot be loaded.
If you selected native JavaHL connector, please check if binaries are available or install and select pure Java Subversion connector from the plug-in connectors update site.
If connectors already installed then you can change the selected one at: Window->Preferences->Team->SVN->SVN Connector.
Selected SVN connector library is not available or cannot be loaded.
If you selected native JavaHL connector, please check if binaries are available or install and select pure Java Subversion connector from the plug-in connectors update site.
If connectors already installed then you can change the selected one at: Window->Preferences->Team->SVN->SVN Connector.

===========================================에러내용===================================

 

구글링하니

SVN 커텍터 라이브러리 로드를 못하는 현상

Window > Preferences > Version Control(Team) > SVN > SVN Connector 탭에서 커넥터를 확인하라고함

 

없음..

SVN Connector 탭화면에서 Get Connectors 버튼을 클릭하여 SVN Connector 를 설치 하라고하는데

나는 아~무것도 안뜸

 

다시 구글링..

 

SVN KIT 설치하라고함 그래서 아래 사진의 1번을 설치함

설치안됨

..

..

..

엥...

 

그치만 나의 소중한동료 우리우리씨가 2번이 모둠구이격이라며 2번을 설치하라고 알려줌!_!

설치 잘됨!_!

 

 

 

!svn 키트가 잘 다운받아지지 않을땐!

SELECT MIN(CASE WHEN A.DOW = 1 THEN A.LEVEL END ) AS SUN
, MIN(CASE WHEN A.DOW = 2 THEN A.LEVEL END ) AS MON
, MIN(CASE WHEN A.DOW = 3 THEN A.LEVEL END ) AS TUE
, MIN(CASE WHEN A.DOW = 4 THEN A.LEVEL END ) AS WED
, MIN(CASE WHEN A.DOW = 5 THEN A.LEVEL END ) AS THU
, MIN(CASE WHEN A.DOW = 6 THEN A.LEVEL END ) AS FRI
, MIN(CASE WHEN A.DOW = 7 THEN A.LEVEL END ) AS SAT
FROM (
WITH RECURSIVE CALENDAR AS (
SELECT 1 AS LEVEL,
       DAYOFWEEK(CONCAT('2023-04','-01')) AS DOW,
       WEEK(CONCAT('2023-04','-01')) AS WOY

UNION ALL

SELECT CALENDAR.LEVEL +1,
   DAYOFWEEK(CONCAT('2023-04','-',CALENDAR.LEVEL+1 )),
   WEEK(CONCAT('2023-04','-',CALENDAR.LEVEL+1))
  FROM CALENDAR
     WHERE CALENDAR.LEVEL < DAY(LAST_DAY(CONCAT('2023-04','-01')))
   )
SELECT * FROM CALENDAR
 )A
    GROUP BY A.WOY
ORDER BY A.WOY

;

 

'2023-04' 부분이 파라미터 #{param} 자리

==========================================결과

2023-04월 달력 쿼리 조회 결과

 

+ jsp에서 보여줄때

 

<div class="calendar">

<table>

<caption>일정 달력 - 날짜별 일정 확인 달력</caption>

<colgroup>

<col style="width:14.28%;" />

<col style="width:14.28%;" />

<col style="width:14.28%;" />

<col style="width:14.28%;" />

<col style="width:14.28%;" />

<col style="width:14.28%;" />

<col style="width:14.28%;" />

</colgroup>

<thead>

<tr>

<th scope="col"></th>

<th scope="col"></th>

<th scope="col"></th>

<th scope="col"></th>

<th scope="col"></th>

<th scope="col"></th>

<th scope="col"></th>

</tr>

</thead>

<tbody>

<c:set value="${today}" var="today" />

<c:forEach var="result" items="${schedul}" varStatus="status">

<tr>

<fmt:formatNumber var="sun" minIntegerDigits="2" type="number" value="${result.sun}"/>

<c:set value="${year}${month}${sun}" var="dt" />

<td onclick="fn_open_schedule_add('<c:out value="${dt}" />');" <c:if test="${dt eq today}">class="sc_today"</c:if>>

<div class="cont" >

<span class="num" ><c:out value="${result.sun}"/></span>

<ul>

<c:forEach var="list" items="${schedulList}" varStatus="status">

<c:if test="${dt eq list.schdulBgnde}">

<li>

<a href="#" onclick="fn_open_shedule_Detail(<c:out value="${list.schdulSn}"/>)" >

<c:if test="${null ne list.schdulNm}"><p class="arrow_box"><c:out value="${list.schdulNm}"/></p></c:if>

<c:out value="${list.userNm}"/>

<c:out value="${list.schdulBeginTm}"/>-<c:out value="${list.schdulEndTm}"/>&nbsp;<c:out value="${list.schdulNm}"/>

</a>

</li>

</c:if>

</c:forEach>

</ul>

</div>

</td>

<fmt:formatNumber var="mon" minIntegerDigits="2" type="number" value="${result.mon}"/>

<c:set value="${year}${month}${mon}" var="dt" />

<td onclick="fn_open_schedule_add('<c:out value="${dt}" />');" <c:if test="${dt eq today}">class="sc_today"</c:if>>

<div class="cont">

<span class="num" ><c:out value="${result.mon}"/></span>

<ul>

<c:forEach var="list" items="${schedulList}" varStatus="status">

<c:if test="${dt eq list.schdulBgnde}">

<li>

<a href="#" onclick="fn_open_shedule_Detail(<c:out value="${list.schdulSn}"/>)" >

<c:if test="${null ne list.schdulNm}"><p class="arrow_box"><c:out value="${list.schdulNm}"/></p></c:if>

<c:out value="${list.userNm}"/>

<c:out value="${list.schdulBeginTm}"/>-<c:out value="${list.schdulEndTm}"/>&nbsp;<c:out value="${list.schdulNm}"/>

</a>

</li>

</c:if>

</c:forEach>

</ul>

</div>

</td>

<fmt:formatNumber var="tue" minIntegerDigits="2" type="number" value="${result.tue}"/>

<c:set value="${year}${month}${tue}" var="dt" />

<td onclick="fn_open_schedule_add('<c:out value="${dt}" />');" <c:if test="${dt eq today}">class="sc_today"</c:if>>

<div class="cont">

<span class="num"><c:out value="${result.tue}"/></span>

<ul>

<c:forEach var="list" items="${schedulList}" varStatus="status">

<c:if test="${dt eq list.schdulBgnde}">

<li>

<a href="#" onclick="fn_open_shedule_Detail(<c:out value="${list.schdulSn}"/>)" >

<c:if test="${null ne list.schdulNm}"><p class="arrow_box"><c:out value="${list.schdulNm}"/></p></c:if>

<c:out value="${list.userNm}"/>

<c:out value="${list.schdulBeginTm}"/>-<c:out value="${list.schdulEndTm}"/>&nbsp;<c:out value="${list.schdulNm}"/>

</a>

</li>

</c:if>

</c:forEach>

</ul>

</div>

</td>

<fmt:formatNumber var="wed" minIntegerDigits="2" type="number" value="${result.wed}"/>

<c:set value="${year}${month}${wed}" var="dt" />

<td onclick="fn_open_schedule_add('<c:out value="${dt}" />');" <c:if test="${dt eq today}">class="sc_today"</c:if>>

<div class="cont">

<span class="num" ><c:out value="${result.wed}"/></span>

<ul>

<c:forEach var="list" items="${schedulList}" varStatus="status">

<c:if test="${dt eq list.schdulBgnde}">

<li>

<a href="#" onclick="fn_open_shedule_Detail(<c:out value="${list.schdulSn}"/>)" >

<c:if test="${null ne list.schdulNm}"><p class="arrow_box"><c:out value="${list.schdulNm}"/></p></c:if>

<c:out value="${list.userNm}"/>

<c:out value="${list.schdulBeginTm}"/>-<c:out value="${list.schdulEndTm}"/>&nbsp;<c:out value="${list.schdulNm}"/>

</a>

</li>

</c:if>

</c:forEach>

</ul>

</div>

</td>

<fmt:formatNumber var="thu" minIntegerDigits="2" type="number" value="${result.thu}"/>

<c:set value="${year}${month}${thu}" var="dt" />

<td onclick="fn_open_schedule_add('<c:out value="${dt}" />');" <c:if test="${dt eq today}">class="sc_today"</c:if>>

<div class="cont">

<span class="num"><c:out value="${result.thu}"/></span>

<ul>

<c:forEach var="list" items="${schedulList}" varStatus="status">

<c:if test="${dt eq list.schdulBgnde}">

<li>

<a href="#" onclick="fn_open_shedule_Detail(<c:out value="${list.schdulSn}"/>)" >

<c:if test="${null ne list.schdulNm}"><p class="arrow_box"><c:out value="${list.schdulNm}"/></p></c:if>

<c:out value="${list.userNm}"/>

<c:out value="${list.schdulBeginTm}"/>-<c:out value="${list.schdulEndTm}"/>&nbsp;<c:out value="${list.schdulNm}"/>

</a>

</li>

</c:if>

</c:forEach>

</ul>

</div>

</td>

<fmt:formatNumber var="fri" minIntegerDigits="2" type="number" value="${result.fri}"/>

<c:set value="${year}${month}${fri}" var="dt" />

<td onclick="fn_open_schedule_add('<c:out value="${dt}" />');" <c:if test="${dt eq today}">class="sc_today"</c:if>>

<div class="cont">

<span class="num" ><c:out value="${result.fri}"/></span>

<ul>

<c:forEach var="list" items="${schedulList}" varStatus="status">

<c:if test="${dt eq list.schdulBgnde}">

<li>

<a href="#" onclick="fn_open_shedule_Detail(<c:out value="${list.schdulSn}"/>)" >

<c:if test="${null ne list.schdulNm}"><p class="arrow_box"><c:out value="${list.schdulNm}"/></p></c:if>

<c:out value="${list.userNm}"/>

<c:out value="${list.schdulBeginTm}"/>-<c:out value="${list.schdulEndTm}"/>&nbsp;<c:out value="${list.schdulNm}"/>

</a>

</li>

</c:if>

</c:forEach>

</ul>

</div>

</td>

<fmt:formatNumber var="sat" minIntegerDigits="2" type="number" value="${result.sat}"/>

<c:set value="${year}${month}${sat}" var="dt" />

<td onclick="fn_open_schedule_add('<c:out value="${dt}" />');" <c:if test="${dt eq today}">class="sc_today"</c:if>>

<div class="cont">

<span class="num" ><c:out value="${result.sat}"/></span>

<ul>

<c:forEach var="list" items="${schedulList}" varStatus="status">

<c:if test="${dt eq list.schdulBgnde}">

<li>

<a href="#" onclick="fn_open_shedule_Detail(<c:out value="${list.schdulSn}"/>)" >

<c:if test="${null ne list.schdulNm}"><p class="arrow_box"><c:out value="${list.schdulNm}"/></p></c:if>

<c:out value="${list.userNm}"/>

<c:out value="${list.schdulBeginTm}"/>-<c:out value="${list.schdulEndTm}"/>&nbsp;<c:out value="${list.schdulNm}"/>

</a>

</li>

</c:if>

</c:forEach>

</ul>

</div>

</td>

</tr>

</c:forEach>

</tbody>

</table>

</div>

============================================================================에러내용START

2023-04-21 09:21:14,172 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service jboss.deployment.unit."web.war".STRUCTURE: org.jboss.msc.service.StartException in service jboss.deploy               ment.unit."web.war".STRUCTURE: WFLYSRV0153: Failed to process phase STRUCTURE of deployment "web.war"
        at org.jboss.as.server@13.0.3.Final//org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:189)
        at org.jboss.msc@1.4.12.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1739)
        at org.jboss.msc@1.4.12.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1701)
        at org.jboss.msc@1.4.12.Final//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1559)
        at org.jboss.threads@2.4.0.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
        at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
        at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
        at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYSRV0156: Failed to index deployment root for annotations
        at org.jboss.as.server@13.0.3.Final//org.jboss.as.server.deployment.annotation.ResourceRootIndexer.indexResourceRoot(ResourceRootIndexer.java:110)
        at org.jboss.as.server@13.0.3.Final//org.jboss.as.server.deployment.annotation.AnnotationIndexProcessor.deploy(AnnotationIndexProcessor.java:51)
        at org.jboss.as.server@13.0.3.Final//org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:182)
        ... 8 more
Caused by: java.lang.OutOfMemoryError: Java heap space
        at org.jboss.jandex@2.1.3.Final//org.jboss.jandex.StrongInternPool.resize(StrongInternPool.java:269)
        at org.jboss.jandex@2.1.3.Final//org.jboss.jandex.StrongInternPool.intern(StrongInternPool.java:257)
        at org.jboss.jandex@2.1.3.Final//org.jboss.jandex.NameTable.intern(NameTable.java:92)
        at org.jboss.jandex@2.1.3.Final//org.jboss.jandex.Indexer.intern(Indexer.java:1173)
        at org.jboss.jandex@2.1.3.Final//org.jboss.jandex.Indexer.processMethodInfo(Indexer.java:293)
        at org.jboss.jandex@2.1.3.Final//org.jboss.jandex.Indexer.index(Indexer.java:1598)
        at org.jboss.as.server@13.0.3.Final//org.jboss.as.server.deployment.annotation.ResourceRootIndexer.indexResourceRoot(ResourceRootIndexer.java:99)
        ... 10 more

2023-04-21 09:21:14,388 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([("deployment" => "web.war")]) - failure description: {"WFLYCTL0080: F               ailed services" => {"jboss.deployment.unit.\"web.war\".STRUCTURE" => "WFLYSRV0153: Failed to process phase STRUCTURE of deployment \"web.war\"
    Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYSRV0156: Failed to index deployment root for annotations
    Caused by: java.lang.OutOfMemoryError: Java heap space"}}
2023-04-21 09:21:14,393 INFO  [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0010: Deployed "web.war" (runtime-name : "web.war")
2023-04-21 09:21:14,402 INFO  [org.jboss.as.controller] (Controller Boot Thread) WFLYCTL0183: Service status report
WFLYCTL0186:   Services which failed to start:      service jboss.deployment.unit."web.war".STRUCTURE: WFLYSRV0153: Failed to process phase STRUCTURE of deployment "web.war"

2023-04-21 09:21:14,453 INFO  [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0212: Resuming server
2023-04-21 09:21:14,453 INFO  [com.arjuna.ats.jbossatx] (Controller Boot Thread) ARJUNA032035: Resuming transaction recovery manager
2023-04-21 09:21:14,455 ERROR [org.jboss.as] (Controller Boot Thread) WFLYSRV0026: WildFly Full 21.0.2.Final (WildFly Core 13.0.3.Final) started (with errors) in 25086ms - Started 444 of 717 services (1 services failed or                missing dependencies, 470 services are lazy, passive or on-demand)

 

============================================================================에러내용END

에러가 나길래.. 가장 위 에러부터 구글링 했는데 뭔 라이브러리가 없어서 어디가 어떻고 저떻고 ... 모르겠다

훈장님 찬스를 썼는데,

바------------------아로 저 빨간색 "Caused by: java.lang.OutOfMemoryError: Java heap space"을 캐치하시더니 메모리 문제네 라고 하셨다..!!

 

오케이 메모리 오케이.

다시 구글링을 한다

 

==========================================================================해결방법 START

누군가가..

"How to increase heap memory for wildfly?" 라고 올려놨고

 

대답하길.."edit bin/standalone.conf and look JAVA_OPTS and change the -Xmx option according to your needs"

 

..

다시한번 더 구글링

..

또 다른 누군가가..

"set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m and increase the -Xmx value."

 

개꿀!!!!!!!!!!!!!! 퍼즐이 맞춰짐!!!! 재기동함 에러안남 개꿀!!!!!!!!!!!!!!!!!!!!!!

==========================================================================해결방법 END

 

+ 추가 메모리 관련 명령어

 

# free 메모리 확인 #

[user@aidataset-webwas1 wildfly-21.0.2.Final-testtestet]# free -m
              total        used        free      shared  buff/cache   available
Mem:           7794        5663         463         377        1668        1498
Swap:             0           0           0

 

# 실시간 메모리 확인 #

root@aidataset-webwas1 wildfly-21.0.2.Final-testtestet]# top
top - 09:59:34 up 685 days, 16:15,  2 users,  load average: 0.96, 0.37, 0.22
Tasks: 135 total,   1 running, 134 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  2.0 sy,  0.0 ni, 97.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7982048 total,  1129152 free,  4791044 used,  2061852 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  2536476 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  9639 jboss     20   0 4204156 758156      0 S   0.3  9.5   2396:32 java

 

★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆

개꿀!!!!!!★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts