Всем привет!
Дело такое. Проект переходит на более новый ВЛ, с вл8.1 на вл9.2.
Не скажу что проблемы редеплоя не было с 8.1, т.к. не пытался, использовал нетбинс и его apply fix, но зачастую просто перезапускал сервер. Но с вл9.2 другое, он мало того что стартует долго, так еще и стопорится около нескольких минут. Выход - требовать машину помощьнее либо решать трабл с редеплоем, и т.к. хрен мне дадут первое, приходится делать лав со вторым.
Суть проблемы.
В приложении используется opsware клиент, opsware сервер крутится также на вл(предположительно на 8.1, но не уверен). Для работы с сервером opsware клиент использует сервисы, доступ же к сервисам осуществляется посредством jndi.
Итак, я упростил веб приложение, оставив только код аутентификации. При старте ВЛ9.2, все нормально, аутенттфиказия вызывается автоматически и проходит успешно, но стоит сделать елементарный редеплой, как падает SecurityException.
Сначала вызывается коннект метод:
| Код |
public void connect() { OpswClientEndpoint endpoint = OpswClientEndpoint.getInst(); try { synchronized(endpoint) { endpoint.setJNDIProvider(protocol, sasHost, sasPort, null);//здесь последний параметр - контекст фектори, если нул берется //дефолтная, те - "weblogic.jndi.WLInitialContextFactory" endpoint.getContext(true); } } catch (UnsupportedProtocol up) { logger.error("init::unsupported protocol::",up); } catch (Exception e) { logger.error("init::connect exception::",e); } }
|
далее метод аутентификации:
| Код |
public boolean authenticate(String sasName, String sasPassword) { String token = ""; //TwistTokenUser user = new TwistTokenUser(sasName, sasPassword, ""); APIUser user = new APIUserImpl(sasName,sasPassword); try { token = OpswClientEndpoint.authenticate(user);//здесь валится екс при редеплое OpswClientEndpoint.getInst().setAPIUser(user); } catch (ClientException e) { logger.error("authenticate::failed1::", e); return false; } catch (AuthenticationException e) { logger.error("authenticate::failed2::", e); e.printStackTrace(); return false; } catch (RemoteException e) { logger.error("authenticate::failed3::", e); return false; } return true; }
|
Собственно екс:
| Код |
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mLCPlatforms' defined in class path resource
[mlc-platforms.xml]: Invocation of init method failed; nested exception is java.lang.SecurityException: [Security:090398]Invalid Subject: weblogic at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1175) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:189) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49) at ModContextLoaderListener.contextInitialized(ModContextLoaderListener.java:13) at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:375) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:83) at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1591) at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2734) at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:892) at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:336) at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26) at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60) at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200) at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117) at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26) at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60) at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:26) at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:641) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26) at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:229) at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:154) at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80) at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:565) at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:136) at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:104) at weblogic.deploy.internal.targetserver.operations.StartOperation.doCommit(StartOperation.java:128) at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:320) at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:815) at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1222) at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:433) at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:161) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:181) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:12) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:67) at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:181) java.lang.SecurityException: [Security:090398]Invalid Subject: weblogic at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:195) at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:338) at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:252) at weblogic.jndi.internal.ServerNamingNode_920_WLStub.lookup(Unknown Source) at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:374) at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:362) at javax.naming.InitialContext.lookup(InitialContext.java:351) at com.opsware.client.OpswClientEndpoint.loadInfo(OpswClientEndpoint.java:1101) at com.opsware.client.OpswClientEndpoint.getService(OpswClientEndpoint.java:596) at com.opsware.client.OpswClientEndpoint.getAuthenticator(OpswClientEndpoint.java:206) at com.opsware.client.OpswClientEndpoint.authenticate(OpswClientEndpoint.java:175) at com.loudcloud.mlc.service.das.twist.DASDAOBaseTwisterImpl.authenticate(DASDAOBaseTwisterImpl.java:105) at com.loudcloud.mlc.service.das.MLCPlatforms.init(MLCPlatforms.java:98) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1242) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1208) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:189) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49) at ModContextLoaderListener.contextInitialized(ModContextLoaderListener.java:13) at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:375) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:83) at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1591) at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2734) at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:892) at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:336) at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26) at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60) at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200) at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117) at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26) at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60) at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:26)
at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:641) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26) at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:229) at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:154) at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80) at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:565) at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:136) at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:104) at weblogic.deploy.internal.targetserver.operations.StartOperation.doCommit(StartOperation.java:128) at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:320) at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:815) at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1222) at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:433) at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:161) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:181) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:12) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:67) at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:181) java.lang.SecurityException: [Security:090398]Invalid Subject: weblogic at weblogic.security.service.SecurityServiceManager.seal(SecurityServiceManager.java:698) at weblogic.rjvm.MsgAbbrevInputStream.getSubject(MsgAbbrevInputStream.java:205) at weblogic.rmi.internal.BasicServerRef.acceptRequest(BasicServerRef.java:841) at weblogic.rmi.internal.BasicServerRef.dispatch(BasicServerRef.java:307) at weblogic.rjvm.RJVMImpl.dispatchRequest(RJVMImpl.java:1114) at weblogic.rjvm.RJVMImpl.dispatch(RJVMImpl.java:1032) at weblogic.rjvm.ConnectionManagerServer.handleRJVM(ConnectionManagerServer.java:225) at weblogic.rjvm.ConnectionManager.dispatch(ConnectionManager.java:809) at weblogic.rjvm.http.HTTPServerJVMConnection.dispatch(HTTPServerJVMConnection.java:399) at weblogic.rjvm.http.TunnelSendServlet.service(TunnelSendServlet.java:25) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7047) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) at weblogic.kernel.Kernel.execute(Kernel.java:343) at weblogic.servlet.internal.WebAppServletContext.dispatch(WebAppServletContext.java:3666) at weblogic.servlet.internal.MuxableSocketHTTP.dispatch(MuxableSocketHTTP.java:801) at weblogic.socket.SSLFilter.dispatch(SSLFilter.java:281) at weblogic.socket.MuxableSocketDiscriminator.dispatch(MuxableSocketDiscriminator.java:286) at weblogic.socket.SSLFilter.dispatch(SSLFilter.java:281) at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:718) at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:664) at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:123) at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183) > ####<24.11.2008 14:40:45 EET> <Info> <Deployer> <PC404> <AdminServer> <[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1227530445812> <BEA-149059> <Module Test1 of application _auto_generated_ear_ is transitioning from STATE_ADMIN to STATE_PREPARED on server AdminServer.> ####<24.11.2008 14:40:45 EET> <Info> <ServletContext-/Test1> <PC404> <AdminServer> <[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <> <1227530445890> <000000> <Closing Spring root WebApplicationContext> ####<24.11.2008 14:40:45 EET> <Info> <Deployer> <PC404> <AdminServer> <[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1227530445890> <BEA-149060> <Module Test1 of application _auto_generated_ear_ successfully transitioned from STATE_ADMIN to STATE_PREPARED on server AdminServer.> ####<24.11.2008 14:40:45 EET> <Info> <Deployer> <PC404> <AdminServer> <[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1227530445890> <BEA-149059> <Module Test1 of application _auto_generated_ear_ is transitioning from STATE_PREPARED to STATE_NEW on server AdminServer.> ####<24.11.2008 14:40:45 EET> <Info> <Deployer> <PC404> <AdminServer> <[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1227530445890> <BEA-149060> <Module Test1 of application _auto_generated_ear_ successfully transitioned from STATE_PREPARED to STATE_NEW on server AdminServer.> ####<24.11.2008 14:40:45 EET> <Error> <Deployer> <PC404> <AdminServer> <[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1227530445890> <BEA-149265> <Failure occured in the execution of deployment request with ID '1227530156046' for task '3'. Error is: 'weblogic.application.ModuleException: ' weblogic.application.ModuleException: at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:894) at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:336) at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26) at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60) at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200) at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117) at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26) at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60) at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:26) at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:641) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26) at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:229) at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:154) at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80) at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:565) at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:136) at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:104) at weblogic.deploy.internal.targetserver.operations.StartOperation.doCommit(StartOperation.java:128) at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:320) at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:815) at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1222) at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:433) at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:161) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:181) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:12) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:67) at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:181) java.lang.SecurityException: [Security:090398]Invalid Subject: weblogic at weblogic.security.service.SecurityServiceManager.seal(SecurityServiceManager.java:698) at weblogic.rjvm.MsgAbbrevInputStream.getSubject(MsgAbbrevInputStream.java:205) at weblogic.rmi.internal.BasicServerRef.acceptRequest(BasicServerRef.java:841) at weblogic.rmi.internal.BasicServerRef.dispatch(BasicServerRef.java:307) at weblogic.rjvm.RJVMImpl.dispatchRequest(RJVMImpl.java:1114) at weblogic.rjvm.RJVMImpl.dispatch(RJVMImpl.java:1032) at weblogic.rjvm.ConnectionManagerServer.handleRJVM(ConnectionManagerServer.java:225) at weblogic.rjvm.ConnectionManager.dispatch(ConnectionManager.java:809) at weblogic.rjvm.http.HTTPServerJVMConnection.dispatch(HTTPServerJVMConnection.java:399) at weblogic.rjvm.http.TunnelSendServlet.service(TunnelSendServlet.java:25) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7047) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) at weblogic.kernel.Kernel.execute(Kernel.java:343) at weblogic.servlet.internal.WebAppServletContext.dispatch(WebAppServletContext.java:3666) at weblogic.servlet.internal.MuxableSocketHTTP.dispatch(MuxableSocketHTTP.java:801) at weblogic.socket.SSLFilter.dispatch(SSLFilter.java:281) at weblogic.socket.MuxableSocketDiscriminator.dispatch(MuxableSocketDiscriminator.java:286) at weblogic.socket.SSLFilter.dispatch(SSLFilter.java:281) at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:718) at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:664) at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:123) at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183) > ####<24.11.2008 14:40:46 EET> <Error> <Deployer> <PC404> <AdminServer> <[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1227530446031> <BEA-149202> <Encountered an exception while attempting to commit the 7 task for the application '_auto_generated_ear_'.> ####<24.11.2008 14:40:46 EET> <Warning> <Deployer> <PC404> <AdminServer> <[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1227530446250> <BEA-149004> <Failures were detected while initiating start task for application '_auto_generated_ear_'.> ####<24.11.2008 14:40:46 EET> <Warning> <Deployer> <PC404> <AdminServer> <[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1227530446250> <BEA-149078> <Stack trace for message 149004 weblogic.application.ModuleException: at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:894) at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:336) at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26) at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60) at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200) at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117) at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26) at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60) at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:26) at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:641) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26) at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:229) at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:154) at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80) at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:565) at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:136) at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:104) at weblogic.deploy.internal.targetserver.operations.StartOperation.doCommit(StartOperation.java:128) at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:320) at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:815) at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1222) at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:433) at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:161) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:181) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:12) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:67) at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:181) java.lang.SecurityException: [Security:090398]Invalid Subject: weblogic at weblogic.security.service.SecurityServiceManager.seal(SecurityServiceManager.java:698) at weblogic.rjvm.MsgAbbrevInputStream.getSubject(MsgAbbrevInputStream.java:205) at weblogic.rmi.internal.BasicServerRef.acceptRequest(BasicServerRef.java:841) at weblogic.rmi.internal.BasicServerRef.dispatch(BasicServerRef.java:307) at weblogic.rjvm.RJVMImpl.dispatchRequest(RJVMImpl.java:1114) at weblogic.rjvm.RJVMImpl.dispatch(RJVMImpl.java:1032) at weblogic.rjvm.ConnectionManagerServer.handleRJVM(ConnectionManagerServer.java:225) at weblogic.rjvm.ConnectionManager.dispatch(ConnectionManager.java:809) at weblogic.rjvm.http.HTTPServerJVMConnection.dispatch(HTTPServerJVMConnection.java:399) at weblogic.rjvm.http.TunnelSendServlet.service(TunnelSendServlet.java:25) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7047) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) at weblogic.kernel.Kernel.execute(Kernel.java:343) at weblogic.servlet.internal.WebAppServletContext.dispatch(WebAppServletContext.java:3666) at weblogic.servlet.internal.MuxableSocketHTTP.dispatch(MuxableSocketHTTP.java:801) at weblogic.socket.SSLFilter.dispatch(SSLFilter.java:281) at weblogic.socket.MuxableSocketDiscriminator.dispatch(MuxableSocketDiscriminator.java:286) at weblogic.socket.SSLFilter.dispatch(SSLFilter.java:281) at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:718) at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:664) at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:123) at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183) >
|
После чего приложение падает, и возобновляет работу только после перезагрузки сервера.
И суть в том, что контекст закрывается при вызове метода endpoint.getContext(true);
в декомпилированном коде клиента видно что при вызове метода getContext, вызывается сначала дисконнект, который и закрывает контекст.
Также пробовал явно вызывать дисконнект во время редеплоя:
| Код |
public class ModContextLoaderListener extends ContextLoaderListener{
public void contextInitialized(ServletContextEvent sce){ super.contextInitialized(sce); }
public void contextDestroyed(ServletContextEvent sce){ try { OpswClientEndpoint.getInst().disconnect(); } catch (CloseFailed e) { // TODO Auto-generated catch block e.printStackTrace(); } super.contextDestroyed(sce); }
}
|
Из доступных апи клиента, установить вручную энвайрмент параметры для контекста нельзя, вся нужная инфа передается тут: endpoint.setJNDIProvider(protocol, sasHost, sasPort, null);. Остальные же параметры, такие как Context.SECURITY_CREDENTIALS, Context.SECURITY_PRINCIPAL берутся по дефолту, и самое удивительное что по дефолту это guest/guest а по сути weblogic/weblogic(но последнее догадки, основанные на секьюрити ексе).
Единственное что я нашел по этому поводу - переписка, сохраненная в кеше гугла:
Invalid+Subject&hl=uk&ct=clnk&cd=1&gl=ua&client=firefox-a]линкИз которойя понял что InitialContext перезаписывается, что и вызывает екс, но как это обойти?
Пробовал реализовывать свою контекст фектори, в которой каждый раз генерировал уникальные Context.SECURITY_CREDENTIALS и Context.SECURITY_PRINCIPAL, но это вызвало только внутреннюю ошибку ВЛа, не помню какую именно, если надо могу запостить.
Сейчас попробую поиграться с weblogic.jndi.Environment классом.
Буду рад любым советам, спасибо за время.