Double Wildfly launching with Intellij to release wars duplicately

서로 다른 서비스를 갖는 프로젝트 2개가 있고 두개의 프로젝트가 intellij에서 동시에 wildfly(jboss) 상에서 실행 되어야 할때, 어떻게 로컬 세팅을 하는지에 대한 기록 임

전제

각 프로젝트는 독립 적으로 이미 작동 시킬 수 있는 상태이다.

wildfly standalone 버전으로 서비스를 start할 거다

port는 서로 달라도 된다

Wildfly가 특정 폴더에 인스톨 되어있다.

wildfly 설정

  • wildfly 디렉토리 이하 standalone 폴더를 하나더 copy한다.

    • standalone2 라는 이름으로 standalone폴더와 같은 위치에 만든다
  • Wildfly > bin 디렉토리 이하 standalone.sh 또는 standalone.bat을 하나더 copy한다.

    • standalone2.sh 라는 이름으로 같은 위치에 만든다
  • standalone2.sh 를 수정한다

    # determine the default base dir, if not set
    if [ "x$JBOSS_BASE_DIR" = "x" ]; then
    -   JBOSS_BASE_DIR="$JBOSS_HOME/standalone"
    +   JBOSS_BASE_DIR="$JBOSS_HOME/standalone2"
    fi

intellij 설정

  • A프로젝트와 B프로젝트를 intellij에서 연다
  • A프로젝트는 다음과 같이 기본 설정한다. (Run > Run/Debug Configuration)
    • '+' > JBoss Server > wildfly > local > Application Server > 로컬 Jboss선택
      • 만약에 Jboss 선택에 아무것도 없다면 "Configuration" 버튼 클릭 JbossHome 선택
    • 'url' : http://localhost:8080/
    • Operating mode > standalone 선택
    • Deployment 탭 선택
      • 디플로이 하고자 하는 Artifact 선택
    • Startup/Connection 탭 선택
      • Startup Script : <>/bin/standalone.sh 선택
  • B프로젝트는 다음과 같이 기본 설정한다. (Run > Run/Debug Configuration)
    • '+' > JBoss Server > wildfly > local > Application Server > 로컬 Jboss선택
      • 만약에 Jboss 선택에 아무것도 없다면 "Configuration" 버튼 클릭 JbossHome 선택
    • 'url' : http://localhost:8090/
    • Operating mode > standalone 선택
      • Port offset : 10 선택
    • Deployment 탭 선택
      • 디플로이 하고자 하는 Artifact 선택
    • Startup/Connection 탭 선택
      • Startup Script : <>/bin/standalone2.sh 선택

offset 설정을 standalone.xml에서 설정할 경우 해당 설정 값을 intellij가 감지 하지 못한다. 반듯이 intellij에서 제공하는 offset으로 수정해줘야 한다. (management port 때문에라도 이렇게 해야한다.)

상위와 같이 했음에도 **Caused by: org.jboss.msc.service.DuplicateServiceException: Service jboss.undertow.deployment.default-server.default-host./.session is already registered**이런 오류가 나오는 경우에는 standalone2 디렉토리 이하에 있는 standalone.xml에 앞서 설정한 deployment가 남아 있을 수도 있다. 이경우에는 deployments tag를 아예 삭제하고 intellij에서 실행하자

728x90
반응형