【发布时间】:2011-07-27 19:13:38
【问题描述】:
我正在尝试让一个包部署其他包并使用 org.eclipse.virgo.kernel.deployer.core.ApplicationDeployer 启动它们,就像管理应用程序 (org.eclipse.virgo.apps.admin) 正在做的那样.我从管理控制台代码中启发了自己并执行以下操作: deploymentIdentity = applicationDeployer(bundleFile.getURI(), new DeploymentOptions(false,false,true));
和:
applicationDeployer.undeploy(deploymentIdentity);
它可以工作,但偶尔会崩溃并出现异常:
service proxy has been destroyed
org.springframework.osgi.service.importer.ServiceProxyDestroyedException: service proxy has been destroyed
at org.springframework.osgi.service.importer.support.internal.aop.ServiceDynamicInterceptor$ServiceLookUpCallback.doWithRetry(ServiceDynamicInterceptor.java:105) ~[na:na]
at org.springframework.osgi.service.importer.support.internal.support.RetryTemplate.execute(RetryTemplate.java:83) ~[na:na]
at org.springframework.osgi.service.importer.support.internal.aop.ServiceDynamicInterceptor.lookupService(ServiceDynamicInterceptor.java:430) ~[na:na]
at org.springframework.osgi.service.importer.support.internal.aop.ServiceDynamicInterceptor.getTarget(ServiceDynamicInterceptor.java:415) ~[na:na]
at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62) ~[na:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[na:na]
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) ~[na:na]
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) ~[na:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[na:na]
at org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59) ~[na:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[na:na]
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) ~[na:na]
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) ~[na:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[na:na]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) ~[na:na]
我首先将 applicationDeployer 与服务 ref 连接,然后与 osgi:listener 连接。在这两种实现中,applicationDeployer 引用永远不会返回,但在 virgo 的管理 web 应用程序中仍然可以正常工作。 我做错了什么?
【问题讨论】:
标签: java eclipse-virgo