2012-07-24 4 views
0

oc4j 독립형 서버에 귀를 배치하려고합니다. 작업이 아무런 경고없이 성공적으로 완료 되었기 때문에 성공적으로 배포했다고 생각합니다. 이제이 웹 앱을 일부 웹 사이트에 바인딩해야한다고 생각합니다. C : \ 오라클 \ JDEV2 \ J2EE의 \ 홈> 자바 -jar 반드시 admin.jar를 내가 바인딩했을 때, 나는 다음과 같은 오류가 점점 오전 : 다음과 같이 명령을 실행하기 전에독립형 oc4j에 배치 할 수 없습니다.

C:\oracle\JDEV2\j2ee\home>java -jar admin.jar ormi://127.0.0.1:22667 oc4jadmin w 
elcome -bindWebApp appr_ear appr default-web-site appr 
Jul 24, 2012 10:45:31 AM oracle.j2ee.rmi.RMIMessages EXCEPTION_ORIGINATES_FROM_T 
HE_REMOTE_SERVER 
WARNING: Exception returned by remote server: {0} 
java.lang.ExceptionInInitializerError 
     at org.apache.tiles.factory.TilesContainerFactory.createTilesContainer(T 
ilesContainerFactory.java:197) 
     at org.apache.tiles.factory.TilesContainerFactory.createContainer(TilesC 
ontainerFactory.java:163) 
     at org.apache.tiles.web.startup.TilesListener.createContainer(TilesListe 
ner.java:90) 
     at org.apache.struts2.tiles.StrutsTilesListener.createContainer(StrutsTi 
lesListener.java:66) 
     at org.apache.tiles.web.startup.TilesListener.contextInitialized(TilesLi 
stener.java:57) 
     at com.evermind.server.http.HttpApplication.initDynamic(HttpApplication. 
java:1140) 
     at com.evermind.server.http.HttpApplication.<init>(HttpApplication.java: 
741) 
     at com.evermind.server.ApplicationStateRunning.getHttpApplication(Applic 
ationStateRunning.java:431) 
     at com.evermind.server.Application.getHttpApplication(Application.java:5 
86) 
     at com.evermind.server.http.HttpSite$HttpApplicationRunTimeReference.cre 
ateHttpApplicationFromReference(HttpSite.java:1987) 
     at com.evermind.server.http.HttpSite$HttpApplicationRunTimeReference.<in 
it>(HttpSite.java:1906) 
     at com.evermind.server.http.HttpSite.addHttpApplication(HttpSite.java:16 
03) 
     at oracle.oc4j.admin.internal.WebApplicationBinder.bindWebApp(WebApplica 
tionBinder.java:302) 
     at com.evermind.server.administration.DefaultApplicationServerAdministra 
tor.bindWebApp(DefaultApplicationServerAdministrator.java:424) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. 
java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces 
sorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:585) 
     at com.evermind.server.rmi.RmiMethodCall.run(RmiMethodCall.java:53) 
     at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(Relea 
sableResourcePooledExecutor.java:303) 
     at java.lang.Thread.run(Thread.java:595) 
Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.comm 
ons.logging.LogConfigurationException: No suitable Log constructor [Ljava.lang.C 
lass;@72e694 for org.apache.commons.logging.impl.Log4JLogger (Caused by java.lan 
g.NoClassDefFoundError: org/apache/log4j/Category) (Caused by org.apache.commons 
.logging.LogConfigurationException: No suitable Log constructor [Ljava.lang.Clas 
s;@72e694 for org.apache.commons.logging.impl.Log4JLogger (Caused by java.lang.N 
oClassDefFoundError: org/apache/log4j/Category)) 
     at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactory 
Impl.java:543) 
     at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactory 
Impl.java:235) 
     at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactory 
Impl.java:209) 
     at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351) 
     at org.apache.tiles.impl.BasicTilesContainer.<clinit>(BasicTilesContaine 
r.java:78) 
     ... 21 more 
Caused by: org.apache.commons.logging.LogConfigurationException: No suitable Log 
constructor [Ljava.lang.Class;@72e694 for org.apache.commons.logging.impl.Log4J 
Logger (Caused by java.lang.NoClassDefFoundError: org/apache/log4j/Category) 
     at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogF 
actoryImpl.java:413) 
     at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactory 
Impl.java:529) 
     ... 25 more 
Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Category 
     at java.lang.Class.getDeclaredConstructors0(Native Method) 
     at java.lang.Class.privateGetDeclaredConstructors(Class.java:2328) 
     at java.lang.Class.getConstructor0(Class.java:2640) 
     at java.lang.Class.getConstructor(Class.java:1629) 
     at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogF 
actoryImpl.java:410) 
     ... 26 more 
Error: null 

을, 내가 배포하는 시도 ormi : //127.0.0.1 : 22667 oc4jadmin w elcome -deploy -file C : \ RTTTLea \ dist \ appr.ear -deploymentName appr_ear

그리고 배포가 성공적으로 완료되었습니다.

[ 2012-07-24 10:49:40.170 EDT ] Application Deployer for appr_ear STARTS. 
[ 2012-07-24 10:49:40.170 EDT ] Stopping application : appr_ear 
[ 2012-07-24 10:49:40.201 EDT ] Stopped application : appr_ear 
[ 2012-07-24 10:49:40.201 EDT ] Undeploy previous deployment 
[ 2012-07-24 10:49:40.935 EDT ] Initialize C:\oracle\JDEV2\jdev\extensions\oracl 
e.adfp.seededoc4j.10.1.3\j2ee\home\applications\appr_ear.ear begins... 
[ 2012-07-24 10:49:44.326 EDT ] Initialize C:\oracle\JDEV2\jdev\extensions\oracl 
e.adfp.seededoc4j.10.1.3\j2ee\home\applications\appr_ear.ear ends... 
[ 2012-07-24 10:49:44.326 EDT ] Starting application : appr_ear 
[ 2012-07-24 10:49:44.326 EDT ] Initializing ClassLoader(s) 
[ 2012-07-24 10:49:44.326 EDT ] Initializing EJB container 
[ 2012-07-24 10:49:44.326 EDT ] Loading connector(s) 
[ 2012-07-24 10:49:44.342 EDT ] Starting up resource adapters 
[ 2012-07-24 10:49:44.342 EDT ] Initializing EJB sessions 
[ 2012-07-24 10:49:44.342 EDT ] Committing ClassLoader(s) 
[ 2012-07-24 10:49:44.342 EDT ] Initialize appr begins... 
[ 2012-07-24 10:49:44.357 EDT ] Initialize appr ends... 
[ 2012-07-24 10:49:44.357 EDT ] Started application : appr_ear 
[ 2012-07-24 10:49:44.357 EDT ] Application Deployer for appr_ear COMPLETES. Ope 
ration time: 4187 msecs 

또한 배포 한 후보기 -> 연결 -> 응용 프로그램 서버의 응용 프로그램 목록에서 내 응용 프로그램을 볼 수 있습니다. 즉, 배포가 성공적으로 수행되었습니다. 이제 홈페이지를 열어 확인하고 싶습니다.

+0

일반적으로 CLI를 사용하여 배포하지는 않지만 별도의 단계로 바인딩 할 필요는 없습니다. 또는 server.xml에 application-auto-deploy-directory 폴더를 정의하고이를 사용할 수도 있습니다. – wytten

+1

https://forums.oracle.com/forums/thread.jspa?messageID=1763496 "EM Console을 사용하여 응용 프로그램을 배포하고 공유 라이브러리를 선택 취소하면 모든 것이 잘 작동합니다." HTH – wytten

+0

네, 그게 제가 한 일입니다. em을 통해 배포하고 빌드하기 전에 jdev의 라이브러리를 선택 취소했습니다. 나는 EM을 시작할 수 있기 전에 이것을 할 수 없었다. 아마도 jdev와 함께 제공되는 독립형 oc4j에는 EM이 없습니다. 그래서 나는 oc4j의 새로운 복사본을 다운로드했다. – Rpant

답변

0

java.lang.NoClassDefFoundError : org/apache/log4j/Category는 EAR 파일에 log4j의 jar 파일이 누락되었거나 잘못된 버전의 log4j가 서버에 있음을 나타냅니다.