【问题标题】:Can't find solution Failed to create directory 'activemq-data\localhost\KahaDB'找不到解决方案 无法创建目录 'activemq-data\localhost\KahaDB'
【发布时间】:2017-09-05 16:03:15
【问题描述】:

我正在尝试在本教程中将 ActiveMQ 与 Tomcat 集成 How to embed ActiveMQ in Tomcat

当我启动服务器时,我收到 Failed to create directory 'activemq-data\localhost\KahaDB'。

如何解决?

另外我也不知道参数放哪里

-Dwebconsole.type=properties

-Dwebconsole.jms.url=tcp://localhost:61616 -Dwebconsole.jmx.url=service:jmx:rmi:///jndi/rmi://localhost:1099/Jmxrmi

日志:

java.lang.RuntimeException: java.io.IOException: 未能创建目录 'activemq-data\localhost\KahaDB' 在 org.apache.activemq.store.kahadb.KahaDBStore.size(KahaDBStore.java:1208) 在 org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter.size(KahaDBPersistenceAdapter.java:217) 在 org.apache.activemq.usage.StoreUsage.retrieveUsage(StoreUsage.java:56) 在 org.apache.activemq.usage.Usage.caclPercentUsage(Usage.java:283) 在 org.apache.activemq.usage.Usage.onLimitChange(Usage.java:188) 在 org.apache.activemq.usage.Usage.setLimit(Usage.java:172) 在 org.apache.activemq.broker.BrokerService.getSystemUsage(BrokerService.java:1156) 在 org.apache.activemq.broker.BrokerService.checkMemorySystemUsageLimits(BrokerService.java:2136) 在 org.apache.activemq.broker.BrokerService.start(BrokerService.java:599) 在 info.octera.utils.LoadActiveMQ.init(LoadActiveMQ.java:32) 在 javax.servlet.GenericServlet.init(GenericServlet.java:158) 在 org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1183) 在 org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1099) 在 org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:989) 在 org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4921) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5231) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1439) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1429) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) 在 java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) 在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:953) 在 org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1439) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1429) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) 在 java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) 在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:953) 在 org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) 在 org.apache.catalina.core.StandardService.startInternal(StandardService.java:422) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) 在 org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) 在 org.apache.catalina.startup.Catalina.start(Catalina.java:655) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495) 原因:java.io.IOException:无法创建目录'activemq-data\localhost\KahaDB' 在 org.apache.activemq.util.IOHelper.mkdirs(IOHelper.java:331) 在 org.apache.activemq.store.kahadb.MessageDatabase.createPageFile(MessageDatabase.java:3118) 在 org.apache.activemq.store.kahadb.MessageDatabase.getPageFile(MessageDatabase.java:3283) 在 org.apache.activemq.store.kahadb.KahaDBStore.size(KahaDBStore.java:1206) ... 43 更多

【问题讨论】:

  • 需要把这些参数放到tomcat启动脚本$CATALINA_HOME/bin/catalina.sh或者catalina.batstackoverflow.com/a/12407817/6506229
  • 你能发布错误日志吗
  • 今天我将 eclipse 和 Tomcat 移到 D 盘,项目正在运行。但是我怎样才能在文件夹 C:\Program Files\eclipse\activemq-data\localhost\KahaDB 中提供 Tomcat 读取和正确磁盘 C 的权限?

标签: tomcat activemq


【解决方案1】:

在 Windows 上,我需要在前面指定带有驱动程序字母的目录才能使其正常工作,例如

<amq:broker useJmx="false" persistent="true" schedulerSupport="true" dataDirectory="c:\active-mq"> ....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    相关资源
    最近更新 更多