2016-10-04 3 views
3

WebLogic 서비스 8.1에서 12c (12.2.1.1.0)로 J2EE 응용 프로그램 (JSP & EJB 2.0)을 업그레이드하고 있습니다. 우리는 도메인 디렉토리의 디렉토리에 분해 된 EAR을 구축 중입니다. 우리는 응용 프로그램을 배포하기 위해 관리 콘솔을 사용하지만 로그에 weblogic.management.DeploymentException: Application <appname> does not have any Components in it.WebLogic 응용 프로그램에 아무 구성 요소도 없습니다

다음이 나타납니다와 함께 실패합니다

####<Sep 26, 2016, 6:16:08,62 PM EDT> <Error> <Deployer> <CVG-000216B-010> <BaseServer> <[STANDBY] ExecuteThread: '11' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <9b2f9073-e2d2-4c02-915c-4e5de240621e-00000012> <1474928168062> <[severity-value: 8] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] > <BEA-149265> <Failure occurred in the execution of deployment request with ID "25758041366812" for task "0" on [partition-name: DOMAIN]. Error is: "weblogic.management.DeploymentException: Application [MyApp] does not have any Components in it." 
weblogic.management.DeploymentException: Application [MyApp] does not have any Components in it. 
    at weblogic.jdbc.module.JDBCDeployment.createModule(JDBCDeployment.java:40) 
    at weblogic.jdbc.module.JDBCDeployment.<init>(JDBCDeployment.java:25) 
    at weblogic.jdbc.module.JDBCDeploymentFactory.createDeployment(JDBCDeploymentFactory.java:79) 
    at weblogic.application.internal.DeploymentManagerImpl.createDeployment(DeploymentManagerImpl.java:186) 
    at weblogic.application.internal.DeploymentManagerImpl.access$700(DeploymentManagerImpl.java:52) 
    at weblogic.application.internal.DeploymentManagerImpl$DeploymentCreatorImpl.createDeployment(DeploymentManagerImpl.java:583) 
    at weblogic.deploy.internal.targetserver.BasicDeployment.createDeployment(BasicDeployment.java:231) 
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:223) 
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:103) 
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:241) 
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:794) 
    at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1340) 
    at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:267) 
    at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:177) 
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:186) 
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:14) 
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:47) 
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:666) 
    at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348) 
    at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333) 
    at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54) 
    at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41) 
    at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:640) 
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:406) 
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:346) 
> 

응용은 (국가는 = "설치")를 설치 않지만 시작할 수 없습니다. 삭제하고 다시 설치하면 오류가 발생하지 않으며 상태가 "활성"이며 응용 프로그램을 테스트 할 수 있습니다. 그러나 서버가 다시 시작되면 위의 예외가 로그에 나타나고 앱이 "ADMIN"상태에 있습니다. 시작될 수 없으므로 삭제하고 다시 관리 콘솔을 통해 다시 설치하면 테스트가 가능합니다.

응용 프로그램에는 최소한 웹 응용 프로그램 인 J2EE 구성 요소가 포함되어 있습니다. 응용 프로그램을 삭제하고 관리 콘솔에서 다시 설치하면 배포 요약 페이지의 "모듈 및 구성 요소"섹션에서 웹 응용 프로그램, 모든 EJB 및 EJB 모듈을 볼 수 있습니다.

WebLogic 코드를 살펴본 결과 오류가 발생한 위치를 확인했습니다. 어플리케이션 용으로 생성되는 컴퍼넌트 MBean가없는 것으로 보여집니다. 이것은 weblogic.jdbc.module.JDBCDeployment 클래스에서입니다 :

우리가 웹 로직 12C가 구성 요소를 인식하도록 응용 프로그램이 처음로드 될 때 분해 EAR을 배포해야 할 일을
private static Module createModule(AppDeploymentMBean mbean) throws DeploymentException { 
    ComponentMBean[] c = mbean.getAppMBean().getComponents(); 
    if ((c == null) || (c.length == 0)) { 
     throw new DeploymentException("Application " + ApplicationVersionUtils.getDisplayName(mbean) + " does not have any Components in it."); 
    } 
    --[snipped]-- 

?

도움이나 통찰력을 얻기를 미리 감사드립니다.

+0

모든 배포 설명자를 8.1에서 12.2.1.1.0으로 업그레이드 했습니까? –

+0

예, 우리는 모든 것을 업데이트하기 위해'weblogic.DDConverter'를 사용했습니다; weblogic-ejb-jar.xml 및 weblogic-cmp-rdbms-jar.xml과 같은 weblogic 관련 파일을 포함하는 모든 ejb 디스크립터 (예 : ejb-jar.xml)를 사용합니다. – SCote

+1

응용 프로그램이나 모듈과 이름이 동일한 jdbc 데이터 소스가 있습니까? 그렇다면 응용 프로그램을 변경하고 응용 프로그램을 다시 배포하십시오. –

답변

3

Emmanuel Collin의 추천 덕분에이 문제는 응용 프로그램과 이름이 같은 데이터 소스의 이름을 변경하여 해결되었습니다.

  1. 삭제 응용 프로그램
  2. 삭제 잘못된 데이터 소스
  3. 서버가 제공되면
  4. 응용 프로그램 응용 프로그램이 오류없이 설치하고 사용할 수 있습니다

를 다시 설치 새 이름으로

  • 재 작성 데이터 소스 .