You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by RobR <ro...@rad-con.com> on 2014/06/23 21:03:56 UTC

Problems installing and running examples on Windows 7

I am new both to Java and to ActiveMQ.  I have successfully installed
ActiveMQ, but I have not been able to get the examples to work.

At first, I tried the C# examples.  The examples would not build because I
do not have the DLL containing the Apache.NMS namespace.  I found and
downloaded a DLL named Apache.NMS.dll, but when I open the Add Reference
dialog box and select the Browse tab, browse to that file, and select it,
Visual Studio seems to accept it but the reference still has the little
exclamation mark inside it and the Path property for the reference remains
empty.  What file should I be using, and where do I get it?

Then I tried the Python stomppy example, since I will probably be using
Python in the final product.  I downloaded and installed the stomp module
(at least, I think I did it correctly), but neither publisher.py nor
listener.py would run.  In publisher.py, I got the following:
>>> Unhandled exception while debugging...
Traceback (most recent call last):
  File "C:\ActiveMQ\examples\stomp\python\stomppy\publisher.py", line 39, in
<module>
    conn.send(data, destination=destination, persistent='false')
TypeError: send() got multiple values for keyword argument 'destination'

When I tried listener.py, I got this:
>>> Unhandled exception while debugging...
Traceback (most recent call last):
  File "C:\ActiveMQ\examples\stomp\python\stomppy\listener.py", line 61, in
<module>
    conn.subscribe(destination=destination, ack='auto')
TypeError: subscribe() takes at least 3 arguments (3 given)

Can someone please straighten me out?

Thanks very much.

RobR



--
View this message in context: http://activemq.2283324.n4.nabble.com/Problems-installing-and-running-examples-on-Windows-7-tp4682400.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: Problems installing and running examples on Windows 7

Posted by RobR <ro...@rad-con.com>.
Oops.  One little thing:  I used persistent='false' in the publisher. 
Persistence is the subject of my next question.

RobR



--
View this message in context: http://activemq.2283324.n4.nabble.com/Problems-installing-and-running-examples-on-Windows-7-tp4682400p4682434.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: Problems installing and running examples on Windows 7

Posted by RobR <ro...@rad-con.com>.
I have resolved my problems, at least for now.  There were two of them. 
First, I did not install the stomp.py module correctly.  Second, the Python
stomp examples shipped with ActiveMQ were not correct.  

Here is the listener that I got to work:

#!/usr/bin/env python
# ------------------------------------------------------------------------
# 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.
# ------------------------------------------------------------------------
 
import time
import sys
import os
import stomp
import random

user = os.getenv("ACTIVEMQ_USER") or "admin"
password = os.getenv("ACTIVEMQ_PASSWORD") or "password"
host = os.getenv("ACTIVEMQ_HOST") or "localhost"
port = os.getenv("ACTIVEMQ_PORT") or 61613
destination = sys.argv[1:2] or ["/topic/event"]
destination = destination[0]

class MyListener(object):
  
  def __init__(self, conn):
    self.conn = conn
    self.count = 0
    self.start = time.time()
  
  def on_error(self, headers, message):
    print('received an error %s' % message)

  def on_message(self, headers, message):
    if message == "SHUTDOWN":
    
      diff = time.time() - self.start
      print("Received %s in %f seconds" % (self.count, diff))
      conn.disconnect()
      sys.exit(0)
      
    else:
      if self.count==0:
        self.start = time.time()
        
      self.count += 1
      if self.count % 1000 == 0:
         print("Received %s messages." % self.count)

conn = stomp.Connection(host_and_ports = [(host, port)])
conn.set_listener('', MyListener(conn))
conn.start()
conn.connect(login=user,passcode=password)
conn.subscribe(id='stomp_listener', destination=destination, ack='auto')
# conn.subscribe(destination=destination,
ack='auto',headers={'seltype':'mandi-age-to-man','type':'textMessage','MessageNumber':random.randint(0,65535)})
print('sent message')

print("Waiting for messages...")
while 1: 
  time.sleep(10) 


And here is the publisher I got to work:

#!/usr/bin/env python
# ------------------------------------------------------------------------
# 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.
# ------------------------------------------------------------------------
 
import time
import sys
import os
import stomp

user = os.getenv("ACTIVEMQ_USER") or "admin"
password = os.getenv("ACTIVEMQ_PASSWORD") or "password"
host = os.getenv("ACTIVEMQ_HOST") or "localhost"
port = os.getenv("ACTIVEMQ_PORT") or 61613
# destination = sys.argv[1:2] or ["/topic/event"]
# destination = destination[0]
dest = "/topic/event"

messages = 10000
data = "Hello World from Python"

conn = stomp.Connection(host_and_ports = [(host, port)])
conn.start()
conn.connect(login=user,passcode=password)

for i in range(0, messages):
   conn.send(dest, data, persistent='false')
   # conn.send(data,
destination=dest,headers={'seltype':'mandi-age-to-man','type':'textMessage'})
   
conn.send(dest, "SHUTDOWN", persistent='true')

conn.disconnect()


RobR



--
View this message in context: http://activemq.2283324.n4.nabble.com/Problems-installing-and-running-examples-on-Windows-7-tp4682400p4682433.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.