2014-01-23 2 views
2

오, 생산 환경에서 standalone.sh로 JBoss7.1.1 AS를 시작할 수 있습니까? 일반적으로 init 스크립트로 시작한 다음 jboss-cli.sh를 사용하여 WAR를 배포합니다. 그러나이 방법으로는 로깅 파일을 만들 수 없습니다.JBoss 7 다중 log4j 설정을 사용하여 스프링 프로필

standalone.sh로 서버를 시작할 때 로그 파일이 성공적으로 만들어집니다.

하지만 서비스를 시작하면 jboss가 &으로 시작하고 jboss-cli.sh로 배포하십시오. 이 오류가 발생합니다.

12:00:38,996 ERROR [stderr] (MSC service thread 1-3) log4j:ERROR setFile(null,true) call failed. 
    12:00:38,997 ERROR [stderr] (MSC service thread 1-3) java.io.FileNotFoundException: ../server/default/log/Mylog.log (No such file or directory) 
    12:00:38,998 ERROR [stderr] (MSC service thread 1-3) at java.io.FileOutputStream.open(Native Method) 
    12:00:38,998 ERROR [stderr] (MSC service thread 1-3) at java.io.FileOutputStream.<init>(FileOutputStream.java:212) 
    12:00:38,999 ERROR [stderr] (MSC service thread 1-3) at java.io.FileOutputStream.<init>(FileOutputStream.java:136) 
    12:00:38,999 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.FileAppender.setFile(FileAppender.java:294) 
    12:00:39,000 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:207) 
    12:00:39,000 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165) 
    12:00:39,000 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307) 
    12:00:39,000 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172) 
    12:00:39,001 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104) 
    12:00:39,001 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842) 
    12:00:39,001 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768) 
    12:00:39,002 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648) 
    12:00:39,002 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514) 
    12:00:39,002 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:580) 
    12:00:39,003 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:415) 
    12:00:39,003 ERROR [stderr] (MSC service thread 1-3) at org.springframework.util.Log4jConfigurer.initLogging(Log4jConfigurer.java:72) 
    12:00:39,003 ERROR [stderr] (MSC service thread 1-3) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    12:00:39,004 ERROR [stderr] (MSC service thread 1-3) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    12:00:39,004 ERROR [stderr] (MSC service thread 1-3) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    12:00:39,004 ERROR [stderr] (MSC service thread 1-3) at java.lang.reflect.Method.invoke(Method.java:606) 
    12:00:39,005 ERROR [stderr] (MSC service thread 1-3) at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273) 
    12:00:39,005 ERROR [stderr] (MSC service thread 1-3) at org.springframework.beans.factory.config.MethodInvokingFactoryBean.doInvok 

나는 보스 배포 구조도

<?xml version="1.0" encoding="UTF-8"?> 
    <jboss-deployment-structure> 
     <deployment> 
      <exclusions> 
       <module name="org.apache.log4j" /> 
      </exclusions> 
     </deployment> 
    </jboss-deployment-structure> 
    <!-- <jboss-deployment-structure> <deployment> <exclusions> <module name="org.apache.log4j" 
     /> </exclusions> </deployment> <sub-deployment name="takaful.war"> <exclusions> 
     <module name="org.apache.log4j" /> </exclusions> </sub-deployment> <sub-deployment 
     name="takaful-0.0.1-SNAPSHOT.jar"> <exclusions> <module name="org.apache.log4j" 
     /> </exclusions> </sub-deployment> </jboss-deployment-structure> --> 

을 추가 log4j를 초기화 내 스프링 빈을 지속했다.

<beans profile="a"> 
    <bean id="logb" 
     class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> 
     <property name="targetClass" value="org.springframework.util.Log4jConfigurer" /> 
     <property name="targetMethod" value="initLogging" /> 
     <property name="arguments"> 
     <list> 
     <value>${loc}/${log4j.properties.location}</value> 
     </list> 
     </property> 
     </bean> 
     </beans> 

     <beans profile="b"> 
     <bean id="logb" 
         class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> 
     <property name="targetClass" value="org.springframework.util.Log4jConfigurer" /> 
     <property name="targetMethod" value="initLogging" /> 
     <property name="arguments"> 
     <list> 
     <value>${loc}/${log4j.properties.location2}</value> 
     </list> 
     </property> 
     </bean> 
     </beans> 

     <beans profile="c"> 
     <bean id="logb" 
         class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> 
     <property name="targetClass" value="org.springframework.util.Log4jConfigurer" /> 
     <property name="targetMethod" value="initLogging" /> 
     <property name="arguments"> 
     <list> 
     <value>${loc}/${log4j.properties.location3}</value> 
     </list> 
     </property> 
     </bean> 
     </beans> 

이 코드는 내가 standalone.sh로 JBoss7.1.1.FINAL을 시작하면 완벽하게 작동하지만 내가 서비스 JBoss의 시작을 사용하고 배포 warname.war에 의해 jboss-cli.sh과 전쟁을 배포하는 경우이 오류를 제공

도와주세요.

답변

0

그것은 당신이 "서비스 JBoss의 시작"로 시작하는 경우

java.io.FileNotFoundException: ../server/default/log/Mylog.log 

그래서 현재 디렉토리가 다른 말했다. jboss-as.conf에 JBOSS_HOME을 추가하거나 에 JBoss를 설치하십시오. JBOSS_HOME =/usr/share/jboss-as