참고 : https://issues.jboss.org/browse/AS7-659
       http://blog.beany.co.kr/archives/3672
       http://www.mastertheboss.com/jboss-web/jbosswebserver/how-do-i-reload-dynamically-my-jsp-from-an-ear

JSP Compile 옵션 활성화


1. {JBoss Node}/configuration/standalone-ha.xml 파일을 수정
   Domain 방식일 경우 
{JBoss Node}/domains/master/configuration/domain.xml 파일을 수정.

2. 배포된 서버 profile을 찾아 아래처럼 변경
    
enable-welcome-root : 기본은 true
                                   false로 선언 시 context root 로 접근 시 welcome 페이지를 직접 web.xml 등으로 설정할 수 있다.

<?xml version='1.0' encoding='UTF-8'?> <server xmlns="urn:jboss:domain:1.5">      <profile>
 
        <subsystem xmlns="urn:jboss:domain:web:1.5" default-virtual-server="default-host" instance-id="${jboss.node.name}" native="false">
            <configuration>
                <jsp-configuration development="true" keep-generated="false" check-interval="1" modification-test-interval="1" recompile-on-fail="true" />
            </configuration>
            <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
            <connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp"/>
            <virtual-server name="default-host" enable-welcome-root="false">
                <alias name="localhost"/>
                <alias name="example.com"/>
            </virtual-server>
        </subsystem> 
    </profile>

</server> 


Note for JBoss AS 7 users: make sure you have set the development attribute to "true" in your jsp-configuration :

<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
            <configuration>
                <jsp-configuration development="true" keep-generated="false" check-interval="1" modification-test-interval="1" recompile-on-fail="true"/>
            </configuration>
            <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
            <virtual-server name="default-host" enable-welcome-root="true">
                <alias name="localhost"/>
                <alias name="example.com"/>
            </virtual-server>
</subsystem>


WildFly users, on the other hand, need to specify development mode to true in the jsp-config element:

<subsystem xmlns="urn:jboss:domain:undertow:1.1">
    <servlet-container name="default" default-buffer-cache="default" stack-trace-on-error="local-only">
    <jsp-config development="true" check-interval="1" modification-test-interval="1" recompile-on-fail="true"/>
</servlet-container><br></subsystem>


출처 : http://opennaru.tistory.com/109

JBoss EAP6 에서 server.log에서 애플리케이션에서 출력하는 로그 메세지가 보이지 않습니다. 톰캣에서는 메세지가 출력되는데 JBoss EAP6에서만 나오지 않습니다.


1. 동작환경

본 내용은 다음과 같은 환경을 전제로 작성되었습니다.

  • JBoss EAP6.X

2. 문제 

애플리케이션이나 모듈에 포함되어 있는 Log4J의 설정이 반영되지 않아 server.log 에 로그가 보이지 않는다.

3. 원인
JBoss EAP6에서는 기본적으로 자체의 로그 모듈을 사용하게 됩니다. 이 경우 배포 대상 애플리케이션에 포함된 Log4J 설정이 동작하지 않습니다.

4. 해결책 

이 문제를 해결하는 방법은 두 가지로 첫 번째는 JBoss 인스턴스 옵션으로 "org.jboss.as.logging.per-deployment=false"를 두는 방법이며, 두 번째는
"jboss-deployment-structure.xml" 를 이용하여 해당 로그 라이브러리를 Exclusion으로 선언하는 방법입니다.


4.1  org.jboss.as.logging.per-deployment=false 를 이용하는 방법

JBoss 인스턴스 시작 옵션에 시스템 프로퍼티로 시스템 프롭퍼티에 org.jboss.as.logging.per-deployment=false 를 설정합니다.
이 방법은 JBoss 에서 각 배포 대상에 대하여 JBoss 자체의 로거를 사용하지 않게 하는 것입니다.  

  • standalone 에서는 
-Dorg.jboss.as.logging.per-deployment=false


  • 도메인 모드에서는
 <server name="PMS" group="pms_server_group" auto-start="false">
            <system-properties>
                   <property name="org.jboss.as.logging.per-deployment" value="false"/>
            </system-properties>
</server>



4.2 jboss-deployment-structure.xml 에서 exclusion으로 선언하는 방법 

  • EAR의 경우 XX.ear/META-INF/jboss-deployment-structure.xml
  • WAR의 경우 XX.war/WEB-INF/jboss-deployment-structure.xml

<jboss-deployment-structure>
  <deployment>
    <exclusions>
        <module name="org.apache.log4j" />
        <module name="org.apache.commons.logging" />
    </exclusions>
  </deployment>
</jboss-deployment-structure>


- logback 설정 시 샘플

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclusions>
<!--  
                        스프링 프레임워크 사용 시 org.apache.commons.logging 은 필수로 해줘야 함
-->
                        <module name="org.apache.commons.logging" />
<module name="org.slf4j" />
<module name="org.slf4j.ext" />
<module name="org.slf4j.impl" />
<module name="org.slf4j.jcl-over-slf4j" />
</exclusions>
</deployment>
</jboss-deployment-structure>


5. References


- jboss 설정에 console 부분은 주석처리 한다.

 <subsystem xmlns="urn:jboss:domain:logging:1.5">
            <!--
            <console-handler name="CONSOLE">
                <level name="INFO"/>
                <formatter>
                    <named-formatter name="COLOR-PATTERN"/>
                </formatter>
            </console-handler>
            -->

            <periodic-rotating-file-handler name="FILE" autoflush="true">
                <formatter>
                    <named-formatter name="PATTERN"/>
                </formatter>
                <file relative-to="jboss.server.log.dir" path="server/server.log"/>
                <suffix value=".yyyy-MM-dd"/>
                <append value="true"/>
            </periodic-rotating-file-handler>
            <logger category="com.arjuna">
                <level name="WARN"/>
            </logger>
            <logger category="org.apache.tomcat.util.modeler">
                <level name="WARN"/>
            </logger>
            <logger category="org.jboss.as.config">
                <level name="DEBUG"/>
            </logger>
            <logger category="sun.rmi">
                <level name="WARN"/>
            </logger>
            <logger category="jacorb">
                <level name="WARN"/>
            </logger>
            <logger category="jacorb.config">
                <level name="ERROR"/>
            </logger>
            <logger category="org.apache.catalina.core.AprLifecycleListener">
                <level name="DEBUG"/>
            </logger>
            <logger category="org.jboss.as.controller.management-deprecated">
                <level name="OFF"/>
            </logger>
            <logger category="org.jboss.as.clustering.web.infinispan">
                <level name="TRACE"/>
            </logger>
            <root-logger>
                <level name="INFO"/>
                <handlers>
                    <!--
                    <handler name="CONSOLE"/>
                    -->
                    <handler name="FILE"/>
                </handlers>
            </root-logger>
            <formatter name="PATTERN">
                <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
            </formatter>
            <formatter name="COLOR-PATTERN">
                <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
            </formatter>
</subsystem>

 

출처 : http://opennaru.tistory.com/44


레드햇 JBoss EAP (Enterprise Application Platform) 6 제품 관련 비교 설명

 


JBoss의 의미는 무엇인가요?
JBoss 는 1999년에 Mark Fleury가  EJB컨테이너를 오픈소스로 개발하기 위해 EJBOSS(Enterprise Java Beans Open Source Software)라는 이름으로 시작한 프로젝트였지만 SUN과의 상표권 문제 때문에 앞의 E를 빼고 현재의 JBoss라는 이름이 되었습니다.


JBoss EAP6는 무엇인가요? 
JBoss EAP 6는 개방형 표준을 기반으로 개발된  오픈소스 미들웨어 플랫폼으로 Java EE 6 인증을 받은 웹 애플리케이션 서버 제품입니다. 엔터프라이즈 환경에서 미들웨어가 갖추어야 하는 대용량 트랜잭션(Transaction), 고가용성을 위한 클러스터링, 메시징, 분산 캐싱, 고성능 보장 등의 기술들을 제공합니다.

JBoss EAP 6 버전은 오픈소스 커뮤니티 프로젝트의 결과물을 이용하여 제품화 됩니다. 다음 URL에서 JBoss EAP 6가 커뮤니티의 어떤 버전을 사용하고 있는지 확인할 수 있다. 다음의 URL ( https://access.redhat.com/site/articles/112673 ) 에서 JBoss EAP 버전 별 구성 컴포넌트에 대한 상세 내용을 확인할 수 있습니다. 


JBoss AS 제품을 사용 중인데 레드햇이 직접 기술 지원해 주시나요?
! 아니오. 레드햇은 JBoss EAP 제품에 대해서 만 기술 지원이 가능합니다. 무료로 사용하고 계신 JBoss AS ( 최신의 Wildfly) 제품에 대해서는 기술 지원을 받으실 수 없습니다.  기술 지원 문제로 JBoss AS 제품에서 JBoss EAP 제품으로 전환을 고려 하신 다면 오픈나루 ( service@opennaru.com ) 나 레드햇 ( customerservice-kr@redhat.com ) 에 문의해 주세요.


JBoss EAP6와 JBoss AS7  제품의 차이점은 무엇인가요?
JBoss EAP6 은 유상 제품으로 JBoss AS7 이라는 오픈소스 커뮤니티 제품을 
Red Hat 에서 추가 테스트와 검증 등을 통하여 안정성, 성능 그리고 보안 수준을 높인 기업용 오픈소스 애플리케이션 서버입니다.
즉 JBoss EAP6 와 JBoss AS7은 소스 코드 수준에서 거의 동일한 제품으로 벤더에 의한 유료 기술 지원을 받을 것인지 아니면 무료로 사용자 스스로 제품 문제들을 해결할 것 인지가 가장 큰 차이점입니다.  ( ※ JBoss.org 에서 다운로드 할 수 있는 JBoss AS 나 Wildfly 등의 제품은 레드햇에서 기술 지원되지 않으니 주의해 주십시오. )

JBoss AS7 제품은 커뮤니티에서 주로 기능 개발을 목적으로 하는 제품으로 기능 개발 중에 발생된 버그는 수정되어 릴리즈에 포함될 수 있지만, 버그 수정이나 지원 환경에 대한 검증을 목적으로 한 유지 보수와 보안 업데이트는 없습니다. 즉 주요 기능을 포함한 메이저 버전 업그레이드는 있지만 보안이나 버그 패치 등의 유지보수 차원의 릴리즈는 없기 때문에 커뮤니티 버전에서 버그 수정이 필요하다면 직접 코드 수정, 포팅 그리고 빌드해야 합니다.

JBoss EAP6 제품은 상용 서비스 제품으로 기능 개발 중심의 커뮤니티 버전과는 달리 고객이 요청한 버그 수정 또는 보안 업데이트 등의 안정성과 품질 그리고 기술 지원 환경에 대한 호환성 테스트를 거쳐 출시하는 엔터프라이즈 제품입니다. 

 
JBoss 커뮤니티 제품
JBoss 엔터프라이즈 제품
사이트
AS7(jboss.org)/Wildfly8 (wildfly.org)
redhat.com/jboss.com
라이선스 비용
없음
없음
기술지원
사용자 스스로 기술 지원
벤더 기술 지원
소스 코드 접근
완전한 접근 가능
완전한 접근 가능
대상
누구나
레드햇 서브스크립션 고객
개발
오픈 소스 프로젝트 커뮤니티
오픈 소스 프로젝트 커뮤니티 및 JBoss EAP 제품화 팀
개선 및 향상
커뮤니티의 요구에 따른 임시 또는 실험적인 소프트웨어 변경
주요 릴리스, 소규모 릴리스, 패치 및 마이그레이션 도구를 포함한 구조화된 릴리스 과정
매뉴얼
프로젝트 컴포넌트에 따라 다양
전문적인 소프트웨어 설명서
품질
기능 검증을 위한 테스팅 위주
매우 다양한 테스트 등이 통합된 우수한 품질
  JBoss 커뮤니티 제품과 엔터프라이즈 제품의 차이점


JBoss 와 Wildfly 의 차이점은 무엇인가요?
! JBoss AS 라는 의미가 JBoss Application Server 의 약자이며 많은 경우 JBoss 로 표기하여 Red Hat 의 상용 오픈소스 제품인 JBoss EAP 와 혼돈을 야기 했습니다. 이러한 혼란을 해소하기 위하여 JBoss AS8 버전부터는 기존의 ‘JBoss’라는 이름을 ‘Wildfly’ 라는 이름으로 변경하기로 결정했으며, 현재는 jboss.org 가 아닌 wildfly.org 커뮤니티에서 ‘wildfly8’이라는 이름으로 오픈소스 프로젝트를 진행하고 있습니다.


JBoss EAP6 제품은 레드햇 리눅스만 지원하나요?
아 니오, JBoss EAP6 는 Pure Java 로 개발된 애플리케이션 서버 제품으로 대부분의 Java 런타임을 지원하고 있으며, 레드햇 리눅스 이외에도 마이크로소스트 윈도우즈 서버와 유닉스 서버를 지원합니다. JBoss EAP6 버전에서 지원 환경은 아래의 URL에서 확인해 주세요. 

 


References




+ Recent posts