2016-10-04 24 views
3

WebLogic Service 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) 
> 

、それが起動することはできません。それを削除して再インストールすると、エラーは発生せず、状態は「アクティブ」になり、アプリケーションをテストできます。ただし、サーバーが再起動すると、上記の例外がログに表示され、アプリケーションは「管理」状態になります。それを開始することはできませんので、削除して管理コンソールから再インストールしてください。実行するとテストが可能になります。

アプリケーションには、少なくともWebアプリケーションであるJ2EEコンポーネントがあり、これはテスト対象のコンポーネントです。アプリケーションを削除して管理コンソールから再インストールすると、展開の概要ページの「モジュールとコンポーネント」セクションにWebアプリケーション、すべてのEJBおよびEJBモジュールが表示されます。

WebLogicコードを調べたところ、エラーがどこで生成されているのかがわかりました。アプリケーション用に生成されるコンポーネントMBeanはないようです。これはweblogic.jdbc.module.JDBCDeploymentクラスからです:

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]-- 

は、我々は、アプリケーションが最初にロードされた場合、WebLogic 12cはコンポーネントを認識するように展開EARをデプロイするために行うには何を持っていますか?

ご協力いただきありがとうございます。

+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. 再インストールしたアプリケーション

アプリケーションがエラーなしでインストールし、サーバが起動したら使用可能です。

関連する問題