본문 바로가기

PROGRAMING/BizActor(비즈액터)

비즈액터 서버에 설치하기(리눅스-tomcat)

비즈액터 사용했던 편리성을 잊지 못해 도전해본다.

lg cns 홈페이지에서 비즈액터를 다운받으면 윈도우에서 실행할 수 있는 환경으로 설정해준다.

기존에 내가 집에서 사용하는 환경은
postgresql에 spring boot에 리눅스 였다.

디비도 maria db가 기본 설치버전으로 딸려오는데   postgresql을 포기할수 없어서 바꿔서 설정해보려고한다.

스프링 부트로 개인 진행하고 있었는데   비즈니스 로직이 많아지니까.  가독성이 너무 떨어져서 더이상 못해먹겠다.

jdk 11 설치하자.
https://triest.tistory.com/48

# sudo add-apt-repository ppa:openjdk-r/ppa
# sudo apt install openjdk-11-jdk

java -version
완료

포트 확인 8080기존에 사용중인거 확인
포트를 18080으로 변경하려고 한다.
netstat -tnlp

홈/wildfly-24.0.0.Final/standalone/configuration/standalone.xml
8009==> 18009
8080==> 18080
8443==> 18443

C:\DevOnNCD\BizActor   이것을  리눅스  "홈/BizActor" 로 옮김

sh 실행안될때
chmod 700 *.sh

톰켓으로 했는데도 동일했다.
해당 에러는 잡았는데
원인은 catalina.sh를  catalina.bat을 참고해서 아래 path 경로를 추가로 앞쪽에 넣어주었더니 발생되지 않았다.
자바홈은 별도로 지정하지는 않았는데  위 에러가 발생하지 않았다.

echo ---------------------------------------------------------------------------
echo Set Java Home
#echo ---------------------------------------------------------------------------
#set "JAVA_HOME=C:\DevOnNCD\tools\jdk1.7.0_80"
#echo JAVA_HOME: "%JAVA_HOME%"
#echo ---------------------------------------------------------------------------

echo ---------------------------------------------------------------------------
echo Set BizActor Home
echo ---------------------------------------------------------------------------
export BIZACTOR_HOME=/home/jijs/BizActor/BizActorHome
echo BIZACTOR_HOME: $BIZACTOR_HOME
echo ---------------------------------------------------------------------------

JAVA_OPTS="$JAVA_OPTS -DBIZACTOR_HOME=$BIZACTOR_HOME"

서버쪽에서는 에러가 나지 않는데
클라이언트에서 비즈액터로 로그인을 시도하면 아래와 같이 로그에 오류가 찍힘

ERROR:2021-07-25 14:42:01.620:DebugServer:Address already in use (Bind failed)
java.net.BindException: Address already in use (Bind failed)
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
        at java.net.ServerSocket.bind(ServerSocket.java:390)
        at java.net.ServerSocket.<init>(ServerSocket.java:252)
        at java.net.ServerSocket.<init>(ServerSocket.java:143)
        at running.server.DebugServer.<clinit>(Unknown Source)
        at bizactor.running.TestRunningContextInit.contextInitialized(Unknown Source)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4699)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5165)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1412)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1402)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
ERROR:2021-07-25 14:42:01.624:DebugThread:Debug Socket Exception Occurred()
java.lang.NullPointerException
        at running.server.DebugServer.acceptClient(Unknown Source)
        at running.common.DebugThread.run(Unknown Source)

음 포트를 죽이고 하니 위 에러도 나타나지 않는다

기본으로 mariadb로 설정이되어있어서  db연결에 오류가 있어 비즈액터가 올라가는데 굉장히 오래 걸린다.
로그를 보면서 기다리자

admin/admin하고 로그인 하고 다시 sample로 로그인하니까 되는데.
아무래도 서버 db연결정보가 틀려서  오류체크에 시간이 오래 걸리는 것 처럼 느껴진다.
내일  다시해보아야겠다.

 

tomcat에 db연결정보를 수정해준다.

context.xml수정

<Context>

    <!-- Default set of monitored resources. If one of these changes, the    -->
    <!-- web application will be reloaded.                                   -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

    <Resource name="jdbc/postgresqlDS" auth="Container" type="javax.sql.DataSource" 
maxTotal="300" maxIdle="10" maxWaitMillis="10000"
username="postgres" password="POSTGRES" driverClassName="org.postgresql.Driver" 
        url="jdbc:postgresql://127.0.0.1:5432/stockweb" />
        
</Context>

tomcat의 lib에 postgresql jdbc jar 올렸다.
netstat -tnlp
포트번호로 kill하기

kill -9 `netstat -tnlp|grep 18080|gawk '{ print $7 }'|grep -o '[0-9]*'`
kill -9 `netstat -tnlp|grep 1527|gawk '{ print $7 }'|grep -o '[0-9]*'`

 

db설정을 맞춰주고 하니까 바로 접속되고 잘된다. 끝!!

추가로 리눅스 부팅시 톰켓이 자동실행되록 하자

https://minddong.tistory.com/21

 

[Tomcat] 우분투 부팅 시 Tomcat 자동 실행

이번 포스팅은 우분투 부팅 시 Tomcat을 자동 실행하려고한다. 서비스에 등록하여 하는 방법을 설명하려고 한다. init.d 폴더에 portfolio라는 서비스를 생성한다. 서비스 이름은 본인에 맞게 바꿔준

minddong.tistory.com

autoTomcat

디렉토리이동후 스크립트 파일 생성
# cd /etc/init.d/
# vi autoTomcat

스크립트작성
#!/bin/bash
export CATALINA_BASE=/home/jijs/apache-tomcat-8.5.49
# See how we were called.
case "$1" in
  start)
  echo -n "Starting tomcat: "
  $CATALINA_BASE/bin/startup.sh
  echo
  ;;
  stop)
  echo -n "Shutting down tomcat: "
  $CATALINA_BASE/bin/shutdown.sh
  echo
  ;;
  restart)
  $0 stop
  sleep 5
  $0 start
  ;;
  *)
  echo "Usage: $0 {start|stop|restart}"
  exit 1
esac
exit 0

파일생성(autoTomcat)

# chmod 755 /etc/init.d/autoTomcat
# cd /etc/init.d
# update-rc.d autoTomcat defaults

#service portfolio restart

재부팅한다.

#reboot

재부팅했는데 실행이 안되었다. 
https://m.blog.naver.com/deeperain/221537964659

찾아보니까 심볼릭 링크를 걸어줘야한다고 한다.

# ln -s /etc/init.d/autoTomcat /etc/rc3.d/S81autoTomcat
# ln -s /etc/init.d/autoTomcat /etc/rc2.d/S81autoTomcat
# ln -s /etc/init.d/autoTomcat /etc/rc5.d/S81autoTomcat
# ln -s /etc/init.d/autoTomcat /etc/rc0.d/K26autoTomcat
# ln -s /etc/init.d/autoTomcat /etc/rc6.d/K26autoTomcat


실행확인은

ps -ef | grep autoTomcat

재부팅하고 한 5분정도 기다려야했다.

너무 오래걸려서 로그를 보니

 WARNING [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [212,052] milliseconds.

이게 나왔는데 해결책이 또 있었다.

https://atl.kr/dokuwiki/doku.php/tomcat_%EA%B5%AC%EB%8F%99%EC%8B%9C_%EC%98%A4%EB%9E%98%EA%B1%B8%EB%A6%AC%EB%8A%94_%ED%98%84%EC%83%81_%ED%95%B4%EA%B2%B0

 

tomcat_구동시_오래걸리는_현상_해결 [AllThatLinux!]

[2019-07-19 17:41:39] [info] Deploying web application directory [/data/koov.net/jsp/ROOT] [2019-07-19 17:41:39] [info] At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were

atl.kr

 

JAVA옵션에 아래와 같은 인수를 추가해주도록 한다.
"$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"

vi catalina.sh 수정

------
echo ---------------------------------------------------------------------------
echo Set Java Home
#echo ---------------------------------------------------------------------------
#set "JAVA_HOME=C:\DevOnNCD\tools\jdk1.7.0_80"
#echo JAVA_HOME: "%JAVA_HOME%"
#echo ---------------------------------------------------------------------------

echo ---------------------------------------------------------------------------
echo Set BizActor Home
echo ---------------------------------------------------------------------------
export BIZACTOR_HOME=/home/jijs/BizActor/BizActorHome
echo BIZACTOR_HOME: $BIZACTOR_HOME
echo ---------------------------------------------------------------------------

JAVA_OPTS="$JAVA_OPTS -DBIZACTOR_HOME=$BIZACTOR_HOME"
JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"

echo ---------------------------------------------------------------------------
echo $JAVA_OPTS
echo ---------------------------------------------------------------------------

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

 service autoTomcat restart

바로 올라왔다.