我当时试图经营Artemis。当我尝试使用以下命令生成消息时,出现错误。我正在使用Windows 10。
C:\Users\a.subhashrao.pande\Downloads\apache-artemis-2.6.3-bin\apache-artemis-2.6.3\bin\tmp\mybroker\bin>artemis producer --url tcp://localhost:61616
Connection failed::Failed to create session factory
--url: is a mandatory property!
Type in the broker URL for a retry (e.g. tcp://localhost:61616)
tcp://localhost:61616
--user: is a mandatory property!
Type the username for a retry
admin
--password: is mandatory with this configuration:
Type the password for a retry (I have entered password as admin)
Exception in thread "main" javax.jms.JMSException: Failed to create session factory
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnectionInternal(ActiveMQConnectionFactory.java:837)
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:282)
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:277)
at org.apache.activemq.artemis.cli.commands.messages.Producer.execute(Producer.java:70)
at org.apache.activemq.artemis.cli.Artemis.internalExecute(Artemis.java:149)
at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:97)
at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:124)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.activemq.artemis.boot.Artemis.execute(Artemis.java:129)
at org.apache.activemq.artemis.boot.Artemis.main(Artemis.java:49)
Caused by: ActiveMQNotConnectedException[errorType=NOT_CONNECTED message=AMQ119007: Cannot connect to server(s). Tried with all available servers.]
at org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:797)
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnectionInternal(ActiveMQConnectionFactory.java:835)
... 12 more
C:\Users\a.subhashrao.pande\Downloads\apache-artemis-2.6.3-bin\apache-artemis-2.6.3\bin\tmp\mybroker\bin>
答案 0 :(得分:0)
当核心JMS客户端无法与代理建立网络连接时,您收到的异常是“标准”异常。请确认您在端口localhost
上具有与生产者(即61616
)在同一台计算机上运行的代理。您可以通过运行以下命令来做到这一点:
netstat -a | grep 61616
并确保有进程在监听。
您可以运行以下命令:
jps -v | grep Artemis
并确保Artemis进程正在运行。
您还可以查看Artemis实例的artemis.log
目录中的log
文件,以查看代理当前正在运行还是已关闭。
答案 1 :(得分:0)
实际上,以下步骤已解决了我的查询。创建代理时,我使用默认端口将其创建为83836。
C:\apache-artemis-2.6.3-bin\apache-artemis-2.6.3\bin>artemis create --default-port
63636 /test/broker
Creating ActiveMQ Artemis instance at: C:\test\broker
--user: is a mandatory property!
Please provide the default username:
admin
--password: is mandatory with this configuration:
Please provide the default password:
--allow-anonymous | --require-login: is a mandatory property!
Allow anonymous access?, valid values are Y,N,True,False
y
Auto tuning journal ...
done! Your system can make 0.54 writes per millisecond, your journal-buffer-timeout
will be 1855999
然后我运行以下步骤来生成消息
C:\test\broker\bin>artemis-service.exe install
C:\test\broker\bin>artemis-service.exe start
C:\test\broker\bin>artemis producer
Connection failed::Failed to create session factory
--url: is a mandatory property!
Type in the broker URL for a retry (e.g. tcp://localhost:61616)
tcp://localhost:63636
--user: is a mandatory property!
Type the username for a retry
admin
--password: is mandatory with this configuration:
Type the password for a retry
Producer ActiveMQQueue[TEST], thread=0 Started to calculate elapsed time ...
Producer ActiveMQQueue[TEST], thread=0 Produced: 1000 messages
Producer ActiveMQQueue[TEST], thread=0 Elapsed time in second : 4 s
Producer ActiveMQQueue[TEST], thread=0 Elapsed time in milli second : 4990 milli
seconds
C:\test\broker\bin>artemis consumer
Consumer:: filter = null
Connection failed::Failed to create session factory
--url: is a mandatory property!
Type in the broker URL for a retry (e.g. tcp://localhost:61616)
tcp://localhost:63636
--user: is a mandatory property!
Type the username for a retry
admin
--password: is mandatory with this configuration:
Type the password for a retry
Consumer ActiveMQQueue[TEST], thread=0 wait until 1000 messages are consumed
Received 1000
Consumer ActiveMQQueue[TEST], thread=0 Consumed: 1000 messages
Consumer ActiveMQQueue[TEST], thread=0 Consumer thread finished
答案 2 :(得分:-1)
带有--
的选项期望=
您可以尝试
artemis producer --url=tcp://localhost:61616 --user=xxxx --password=yyyy