2014-01-21 205 views
1

我上xp.I有沒有運行Web服務器的服務或任何種類的數據庫窗口運行apachemq,但我一直收到此錯誤一旦我開始主動MQ的Apache ActiveMQ的啓動,然後突然停止在Windows

錯誤|無法啓動Apache ActiveMQ([localhost, ID:computer_1-3725-13902958 73141-0:1],java.net.URISyntaxException: 索引13處主機名中的非法字符: ws:// computer_1:61614?maximumConnections = 1000 & wireFormat.maxFrameSize = 104857 600)

這是完整的日誌

C:\apache_activemq>.\bin\activemq 
Java Runtime: Oracle Corporation 1.7.0_21 C:\Program Files\Java\jdk1.7.0_21\jre 
    Heap sizes: current=1013632k free=996854k max=1013632k 
    JVM args: -Dcom.sun.management.jmxremote -Xms1G -Xmx1G -Djava.util.logging.c 
onfig.file=logging.properties -Dhawtio.realm=activemq -Dhawtio.role=admins -Dhaw 
tio.rolePrincipalClasses=org.apache.activemq.jaas.GroupPrincipal -Djava.security 
.auth.login.config=C:\apache_activemq\bin\..\conf\login.config -Dactivemq.classp 
ath=C:\apache_activemq\bin\..\conf;C:\apache_activemq\bin\../conf;C:\apache_acti 
vemq\bin\../conf; -Dactivemq.home=C:\apache_activemq\bin\.. -Dactivemq.base=C:\a 
pache_activemq\bin\.. -Dactivemq.conf=C:\apache_activemq\bin\..\conf -Dactivemq. 
data=C:\apache_activemq\bin\..\data -Djava.io.tmpdir=C:\apache_activemq\bin\..\d 
ata\tmp 
Extensions classpath: 
    [C:\apache_activemq\bin\..\lib,C:\apache_activemq\bin\..\lib\camel,C:\apache_a 
ctivemq\bin\..\lib\optional,C:\apache_activemq\bin\..\lib\web,C:\apache_activemq 
\bin\..\lib\extra] 
ACTIVEMQ_HOME: C:\apache_activemq\bin\.. 
ACTIVEMQ_BASE: C:\apache_activemq\bin\.. 
ACTIVEMQ_CONF: C:\apache_activemq\bin\..\conf 
ACTIVEMQ_DATA: C:\apache_activemq\bin\..\data 
Loading message broker from: xbean:activemq.xml 
INFO | Refreshing [email protected]: startu 
p date [Tue Jan 21 12:17:33 EAT 2014]; root of context hierarchy 
INFO | PListStore:[C:\apache_activemq\bin\..\data\localhost\tmp_storage] starte 
d 
INFO | Using Persistence Adapter: KahaDBPersistenceAdapter[C:\apache_activemq\b 
in\..\data\kahadb] 
INFO | JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1099 
/jmxrmi 
INFO | KahaDB is version 5 
INFO | Recovering from the journal ... 
INFO | Recovery replayed 14 operations from the journal in 0.16 seconds. 
INFO | Apache ActiveMQ 5.9.0 (localhost, ID:computer_1-3725-1390295873141-0:1) 
is starting 
INFO | Listening for connections at: tcp://0.0.0.0:61616?maximumConnections=100 
0&wireFormat.maxFrameSize=104857600 
INFO | Connector openwire started 
INFO | Listening for connections at: amqp://0.0.0.0:5672?maximumConnections=100 
0&wireFormat.maxFrameSize=104857600 
INFO | Connector amqp started 
INFO | Listening for connections at: stomp://0.0.0.0:61613?maximumConnections=1 
000&wireFormat.maxFrameSize=104857600 
INFO | Connector stomp started 
INFO | Listening for connections at: mqtt://0.0.0.0:1883?maximumConnections=100 
0&wireFormat.maxFrameSize=104857600 
INFO | Connector mqtt started 
ERROR | Failed to start Apache ActiveMQ ([localhost, ID:computer_1-3725-13902958 
73141-0:1], java.net.URISyntaxException: Illegal character in hostname at index 
13: ws://computer_1:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857 
600) 
INFO | Apache ActiveMQ 5.9.0 (localhost, ID:computer_1-3725-1390295873141-0:1) 
is shutting down 
INFO | Connector openwire stopped 
INFO | Connector amqp stopped 
INFO | Connector stomp stopped 
INFO | Connector mqtt stopped 
INFO | Connector ws stopped 
INFO | PListStore:[C:\apache_activemq\bin\..\data\localhost\tmp_storage] stoppe 
d 
INFO | Stopping async queue tasks 
INFO | Stopping async topic tasks 
INFO | Stopped KahaDB 
INFO | Apache ActiveMQ 5.9.0 (localhost, ID:computer_1-3725-1390295873141-0:1) 
uptime 13.059 seconds 
INFO | Apache ActiveMQ 5.9.0 (localhost, ID:computer_1-3725-1390295873141-0:1) 
is shutdown 
INFO | Closing [email protected]: startup d 
ate [Tue Jan 21 12:17:33 EAT 2014]; root of context hierarchy 
WARN | Exception thrown from LifecycleProcessor on context close 
java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refr 
esh' before invoking lifecycle methods via the context: org.apache.activemq.xbea 
[email protected]: startup date [Tue Jan 21 12:17:33 EAT 2014]; root 
of context hierarchy 
     at org.springframework.context.support.AbstractApplicationContext.getLif 
ecycleProcessor(AbstractApplicationContext.java:360) 
     at org.springframework.context.support.AbstractApplicationContext.doClos 
e(AbstractApplicationContext.java:1057) 
     at org.springframework.context.support.AbstractApplicationContext.close(
AbstractApplicationContext.java:1010) 
     at org.apache.activemq.hooks.SpringContextHook.run(SpringContextHook.jav 
a:30) 
     at org.apache.activemq.broker.BrokerService.stop(BrokerService.java:782) 

     at org.apache.activemq.xbean.XBeanBrokerService.stop(XBeanBrokerService. 
java:122) 
     at org.apache.activemq.broker.BrokerService.start(BrokerService.java:574 
) 
     at org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBean 
BrokerService.java:73) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. 
java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces 
sorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:601) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBean 
Factory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1608) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBean 
Factory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1549) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBean 
Factory.initializeBean(AbstractAutowireCapableBeanFactory.java:1479) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBean 
Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBean 
Factory.createBean(AbstractAutowireCapableBeanFactory.java:458) 
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb 
ject(AbstractBeanFactory.java:295) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr 
y.getSingleton(DefaultSingletonBeanRegistry.java:223) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe 
an(AbstractBeanFactory.java:292) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean 
(AbstractBeanFactory.java:194) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory. 
preInstantiateSingletons(DefaultListableBeanFactory.java:628) 
     at org.springframework.context.support.AbstractApplicationContext.finish 
BeanFactoryInitialization(AbstractApplicationContext.java:932) 
     at org.springframework.context.support.AbstractApplicationContext.refres 
h(AbstractApplicationContext.java:479) 
     at org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(
ResourceXmlApplicationContext.java:64) 
     at org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(
ResourceXmlApplicationContext.java:52) 
     at org.apache.activemq.xbean.XBeanBrokerFactory$1.<init>(XBeanBrokerFact 
ory.java:104) 
     at org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext 
(XBeanBrokerFactory.java:104) 
     at org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBroker 
Factory.java:67) 
     at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.j 
ava:71) 
     at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.j 
ava:54) 
     at org.apache.activemq.console.command.StartCommand.runTask(StartCommand 
.java:87) 
     at org.apache.activemq.console.command.AbstractCommand.execute(AbstractC 
ommand.java:57) 
     at org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand 
.java:150) 
     at org.apache.activemq.console.command.AbstractCommand.execute(AbstractC 
ommand.java:57) 
     at org.apache.activemq.console.command.ShellCommand.main(ShellCommand.ja 
va:104) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. 
java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces 
sorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:601) 
     at org.apache.activemq.console.Main.runTaskClass(Main.java:262) 
     at org.apache.activemq.console.Main.main(Main.java:115) 
ERROR: java.lang.RuntimeException: Failed to execute start task. Reason: java.la 
ng.IllegalStateException: BeanFactory not initialized or already closed - call ' 
refresh' before accessing beans via the ApplicationContext 
java.lang.RuntimeException: Failed to execute start task. Reason: java.lang.Ille 
galStateException: BeanFactory not initialized or already closed - call 'refresh 
' before accessing beans via the ApplicationContext 
     at org.apache.activemq.console.command.StartCommand.runTask(StartCommand 
.java:91) 
     at org.apache.activemq.console.command.AbstractCommand.execute(AbstractC 
ommand.java:57) 
     at org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand 
.java:150) 
     at org.apache.activemq.console.command.AbstractCommand.execute(AbstractC 
ommand.java:57) 
     at org.apache.activemq.console.command.ShellCommand.main(ShellCommand.ja 
va:104) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. 
java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces 
sorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:601) 
     at org.apache.activemq.console.Main.runTaskClass(Main.java:262) 
     at org.apache.activemq.console.Main.main(Main.java:115) 
Caused by: java.lang.IllegalStateException: BeanFactory not initialized or alrea 
dy closed - call 'refresh' before accessing beans via the ApplicationContext 
     at org.springframework.context.support.AbstractRefreshableApplicationCon 
text.getBeanFactory(AbstractRefreshableApplicationContext.java:171) 
     at org.springframework.context.support.AbstractApplicationContext.destro 
yBeans(AbstractApplicationContext.java:1090) 
     at org.springframework.context.support.AbstractApplicationContext.refres 
h(AbstractApplicationContext.java:487) 
     at org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(
ResourceXmlApplicationContext.java:64) 
     at org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(
ResourceXmlApplicationContext.java:52) 
     at org.apache.activemq.xbean.XBeanBrokerFactory$1.<init>(XBeanBrokerFact 
ory.java:104) 
     at org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext 
(XBeanBrokerFactory.java:104) 
     at org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBroker 
Factory.java:67) 
     at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.j 
ava:71) 
     at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.j 
ava:54) 
     at org.apache.activemq.console.command.StartCommand.runTask(StartCommand 
.java:87) 
     ... 10 more 
ERROR: java.lang.IllegalStateException: BeanFactory not initialized or already c 
losed - call 'refresh' before accessing beans via the ApplicationContext 
java.lang.IllegalStateException: BeanFactory not initialized or already closed - 
call 'refresh' before accessing beans via the ApplicationContext 
     at org.springframework.context.support.AbstractRefreshableApplicationCon 
text.getBeanFactory(AbstractRefreshableApplicationContext.java:171) 
     at org.springframework.context.support.AbstractApplicationContext.destro 
yBeans(AbstractApplicationContext.java:1090) 
     at org.springframework.context.support.AbstractApplicationContext.refres 
h(AbstractApplicationContext.java:487) 
     at org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(
ResourceXmlApplicationContext.java:64) 
     at org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(
ResourceXmlApplicationContext.java:52) 
     at org.apache.activemq.xbean.XBeanBrokerFactory$1.<init>(XBeanBrokerFact 
ory.java:104) 
     at org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext 
(XBeanBrokerFactory.java:104) 
     at org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBroker 
Factory.java:67) 
     at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.j 
ava:71) 
     at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.j 
ava:54) 
     at org.apache.activemq.console.command.StartCommand.runTask(StartCommand 
.java:87) 
     at org.apache.activemq.console.command.AbstractCommand.execute(AbstractC 
ommand.java:57) 
     at org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand 
.java:150) 
     at org.apache.activemq.console.command.AbstractCommand.execute(AbstractC 
ommand.java:57) 
     at org.apache.activemq.console.command.ShellCommand.main(ShellCommand.ja 
va:104) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. 
java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces 
sorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:601) 
     at org.apache.activemq.console.Main.runTaskClass(Main.java:262) 
     at org.apache.activemq.console.Main.main(Main.java:115) 
C:\apache_activemq> 

%SystemRoot%\system32\drivers\etc\hosts看起來像這樣

1 27.0.0.1本地主機

127.0.0.1 mpa.one.microsoft.com

我activemq.xml中看起來像這樣

<!-- 
    Licensed to the Apache Software Foundation (ASF) under one or more 
    contributor license agreements. See the NOTICE file distributed with 
    this work for additional information regarding copyright ownership. 
    The ASF licenses this file to You under the Apache License, Version 2.0 
    (the "License"); you may not use this file except in compliance with 
    the License. You may obtain a copy of the License at 

    http://www.apache.org/licenses/LICENSE-2.0 

    Unless required by applicable law or agreed to in writing, software 
    distributed under the License is distributed on an "AS IS" BASIS, 
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
    See the License for the specific language governing permissions and 
    limitations under the License. 
--> 
<!-- START SNIPPET: example --> 
<beans 
    xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd"> 

    <!-- Allows us to use system properties as variables in this configuration file --> 
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
     <property name="locations"> 
      <value>file:${activemq.conf}/credentials.properties</value> 
     </property> 
    </bean> 

    <!-- Allows log searching in hawtio console --> 
    <bean id="logQuery" class="org.fusesource.insight.log.log4j.Log4jLogQuery" 
      lazy-init="false" scope="singleton" 
      init-method="start" destroy-method="stop"> 
    </bean> 

    <!-- 
     The <broker> element is used to configure the ActiveMQ broker. 
    --> 
    <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}"> 

     <destinationPolicy> 
      <policyMap> 
       <policyEntries> 
       <policyEntry topic=">" > 
        <!-- The constantPendingMessageLimitStrategy is used to prevent 
         slow topic consumers to block producers and affect other consumers 
         by limiting the number of messages that are retained 
         For more information, see: 

         http://activemq.apache.org/slow-consumer-handling.html 

        --> 
        <pendingMessageLimitStrategy> 
        <constantPendingMessageLimitStrategy limit="1000"/> 
        </pendingMessageLimitStrategy> 
       </policyEntry> 
       </policyEntries> 
      </policyMap> 
     </destinationPolicy> 


     <!-- 
      The managementContext is used to configure how ActiveMQ is exposed in 
      JMX. By default, ActiveMQ uses the MBean server that is started by 
      the JVM. For more information, see: 

      http://activemq.apache.org/jmx.html 
     --> 
     <managementContext> 
      <managementContext createConnector="true"/> 
     </managementContext> 

     <!-- 
      Configure message persistence for the broker. The default persistence 
      mechanism is the KahaDB store (identified by the kahaDB tag). 
      For more information, see: 

      http://activemq.apache.org/persistence.html 
     --> 
     <persistenceAdapter> 
      <kahaDB directory="${activemq.data}/kahadb"/> 
     </persistenceAdapter> 


      <!-- 
      The systemUsage controls the maximum amount of space the broker will 
      use before disabling caching and/or slowing down producers. For more information, see: 
      http://activemq.apache.org/producer-flow-control.html 
      --> 
      <systemUsage> 
      <systemUsage> 
       <memoryUsage> 
        <memoryUsage percentOfJvmHeap="70" /> 
       </memoryUsage> 
       <storeUsage> 
        <storeUsage limit="100 gb"/> 
       </storeUsage> 
       <tempUsage> 
        <tempUsage limit="50 gb"/> 
       </tempUsage> 
      </systemUsage> 
     </systemUsage> 

     <!-- 
      The transport connectors expose ActiveMQ over a given protocol to 
      clients and other brokers. For more information, see: 

      http://activemq.apache.org/configuring-transports.html 
     --> 
     <transportConnectors> 
      <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --> 
      <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
      <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
      <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
      <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
      <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
     </transportConnectors> 

     <!-- destroy the spring context on shutdown to stop jetty --> 
     <shutdownHooks> 
      <bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" /> 
     </shutdownHooks> 

    </broker> 

    <!-- 
     Enable web consoles, REST and Ajax APIs and demos 
     The web consoles requires by default login, you can disable this in the jetty.xml file 

     Take a look at ${ACTIVEMQ_HOME}/conf/jetty.xml for more details 
    --> 
    <import resource="jetty.xml"/> 

</beans> 
<!-- END SNIPPET: example --> 

我應該如何解決這個錯誤?

+0

請檢查答案在這裏http://stackoverflow.com/questions/19990718/where-can-i-manually-configure-activemq-hostname – Visu

回答

3

我的主機名是本地主機不包含任何underscores.The僅下劃線是在我的電腦name.My舊名是computer_1但我改成了computer1,現在我可以使用ActiveMQ的localhost:8161 Web控制檯。

要知道如何在Windows上更改計算機名稱,請執行google或參考Windows文檔。此錯誤與主機名稱無關,而與計算機名稱無關。

+0

這就是我的意思 – Mayoares

3

我有類似的問題。重啓後問題消失了。嘗試重新啓動PC並首先啓動activemq。 可能它涉及到一些端口已被佔用。

0

在你的「data」文件夾中檢查你的「activemq.log」,在我的情況下,我得到這個錯誤是因爲我使用的是「redeliveryPlugin」,它在代理定義中需要一個schedulerSupport =「true」。