【发布时间】:2017-10-03 13:37:15
【问题描述】:
我在 Websphere 容器上部署了一个应用程序,并通过容器配置了 EJB Timer 调度程序。
我配置了一个 oracle 数据库,一切运行顺利。
现在我正在尝试将数据库从 Oracle 更改为 postgres SQL,并完成了所有需要的工作,包括创建新的数据源、驱动程序等。 Websphere 确实设法通过数据源连接到数据库。 我正在使用与我的 oracle 数据库相同的 Jndi,因此代码中不需要额外的工作。
当我尝试启动应用程序并安装新的 EAR 文件时,出现以下异常:
WebSphere:name=ApplicationManager,process=server1,platform=proxy,node=localhostNode01,version=8.5.5.10,type=ApplicationManager,mbeanIdentifier=ApplicationManager,cell=localhostNode01Cell,spec=1.0 异常是:javax.management.MBeanException : 尝试调用操作 startApplication 时在 RequiredModelMBean 中引发异常 在 javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1304) 在 javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1093) 在 com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:832) 在 com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:814) 在 com.ibm.ws.management.AdminServiceImpl$1.run(AdminServiceImpl.java:1350) 在 com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118) 在 com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:1243) 在 com.ibm.ws.management.application.AppManagementImpl._startApplication(AppManagementImpl.java:1482) 在 com.ibm.ws.management.application.AppManagementImpl.startApplication(AppManagementImpl.java:1371) 在 com.ibm.ws.management.application.AppManagementImpl.startApplication(AppManagementImpl.java:1320) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56) 在 java.lang.reflect.Method.invoke(Method.java:620) 在 sun.reflect.misc.Trampoline.invoke(MethodUtil.java:88) 在 sun.reflect.GeneratedMethodAccessor31.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56) 在 java.lang.reflect.Method.invoke(Method.java:620) 在 sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:292) 在 javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1261) 在 java.security.AccessController.doPrivileged(AccessController.java:422) 在 java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:88) 在 javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1255) 在 javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1093) 在 com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:832) 在 com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:814) 在 com.ibm.ws.management.AdminServiceImpl$1.run(AdminServiceImpl.java:1350) 在 com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118) 在 com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:1243) 在 com.ibm.ws.management.connector.AdminServiceDelegator.invoke(AdminServiceDelegator.java:181) 在 sun.reflect.GeneratedMethodAccessor38.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56) 在 java.lang.reflect.Method.invoke(Method.java:620) 在 com.ibm.ws.management.connector.soap.SOAPConnector.invoke(SOAPConnector.java:488) 在 com.ibm.ws.management.connector.soap.SOAPConnector.service(SOAPConnector.java:324) 在 com.ibm.ws.management.connector.soap.SOAPConnection.handleRequest(SOAPConnection.java:65) 在 com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:733) 在 com.ibm.ws.http.HttpConnection.run(HttpConnection.java:522) 在 com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892) 引起:com.ibm.ws.exception.RuntimeError: com.ibm.websphere.csi.EJBContainerException: EJB Timer Service not started 在 com.ibm.ws.ejbcontainer.runtime.AbstractEJBRuntime.startModule(AbstractEJBRuntime.java:731) 在 com.ibm.ws.ejbcontainer.runtime.SharedEJBRuntimeImpl.startModule(SharedEJBRuntimeImpl.java:338) 在 com.ibm.ws.runtime.component.EJBContainerImpl.start(EJBContainerImpl.java:3588) 在 com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1179) 在 com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1390) 在 com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:639) 在 com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:979) 在 com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:778) 在 com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplicationDynamically(ApplicationMgrImpl.java:1381) 在 com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2192) 在 com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:435) 在 com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123) 在 com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:378) 在 com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access 500 美元(CompositionUnitMgrImpl.java:126) 在 com.ibm.ws.runtime.component.CompositionUnitMgrImpl$1.run(CompositionUnitMgrImpl.java:653) 在 com.ibm.ws.security.auth.ContextManagerImpl.runAs(ContextManagerImpl.java:5396) 在 com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem(ContextManagerImpl.java:5612) 在 com.ibm.ws.security.core.SecurityContext.runAsSystem(SecurityContext.java:255) 在 com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startCompositionUnit(CompositionUnitMgrImpl.java:667) 在 com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startCompositionUnit(CompositionUnitMgrImpl.java:611) 在 com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:1271) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56) 在 java.lang.reflect.Method.invoke(Method.java:620) 在 sun.reflect.misc.Trampoline.invoke(MethodUtil.java:88) 在 sun.reflect.GeneratedMethodAccessor31.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56) 在 java.lang.reflect.Method.invoke(Method.java:620) 在 sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:292) 在 javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1261) 在 java.security.AccessController.doPrivileged(AccessController.java:422) 在 java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:88) 在 javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1255) ... 38 更多 原因:com.ibm.websphere.csi.EJBContainerException:EJB 计时器服务未启动 在 com.ibm.ws.runtime.component.EJBContainerImpl.getSchedulerInstance(EJBContainerImpl.java:2082) 在 com.ibm.ws.runtime.component.EJBContainerImpl.initializeTimerService(EJBContainerImpl.java:1827) 在 com.ibm.ws.runtime.component.WASEJBRuntimeImpl.initializeTimerService(WASEJBRuntimeImpl.java:540) 在 com.ibm.ws.ejbcontainer.runtime.AbstractEJBRuntime.startModule(AbstractEJBRuntime.java:575) ... 71 更多 原因:com.ibm.ws.scheduler.exception.SchedulerDataStoreException:com.ibm.ws.extensionhelper.exception.UnknownDatabaseException:无法检测到数据库供应商。供应商字符串是 PostgreSQL 在 com.ibm.ws.scheduler.WASSchedulerCfgHelper.createTables(WASSchedulerCfgHelper.java:546) 在 com.ibm.ws.runtime.component.EJBContainerImpl.createTimerTables(EJBContainerImpl.java:2712) 在 com.ibm.ws.runtime.component.EJBContainerImpl.getSchedulerInstance(EJBContainerImpl.java:2025) ... 74 更多 原因:com.ibm.ws.extensionhelper.exception.UnknownDatabaseException:无法检测到数据库供应商。供应商字符串是 PostgreSQL 在 com.ibm.ws.extensionhelper.db.impl.DatabaseHelperImpl.connect(DatabaseHelperImpl.java:672) 在 com.ibm.ws.extensionhelper.db.impl.DatabaseHelperImpl.initialize(DatabaseHelperImpl.java:501) 在 com.ibm.ws.extensionhelper.db.impl.DatabaseHelperImpl.(DatabaseHelperImpl.java:261) 在 com.ibm.ws.extensionhelper.impl.ExtensionHelperServiceImpl.getDatabaseHelper(ExtensionHelperServiceImpl.java:116) 在 com.ibm.ws.scheduler.DBHelperImpl.(DBHelperImpl.java:108) 在 com.ibm.ws.scheduler.WASSchedulerCfgHelper.getDatabaseHelper(WASSchedulerCfgHelper.java:959) 在 com.ibm.ws.scheduler.WASSchedulerCfgHelper.createTables(WASSchedulerCfgHelper.java:541) ... 76 更多
[10/3/17 16:19:42:601 IDT] 00000067 ServletWrappe
我认为在摆脱 IBM 调度程序并移动 EJB 标准 Timer 之后,我不会得到这个异常。
知道如何克服这个问题吗?
【问题讨论】:
标签: java postgresql web-services ejb websphere