gok03 / rosjava

Automatically exported from code.google.com/p/rosjava
0 stars 0 forks source link

roslaunch uses XML-RPC function system.multicall - which is not supported by rosjava #84

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Run a roscore using rosjava on a machine running Windows 7
2. Aim a Linux based ROS install at the Windows roscore using ROS_MASTER_URI
3. Run a roslaunch launch-file on the Linux machine

What is the expected output? What do you see instead?

The expectation was that the nodes would be launched from the launch file. This 
failed, and the output was:

setting /run_id to dcbe8896-4c34-11e1-94e2-848f69afe3b2
process[rosout-1]: started with pid [15337]
started core service [/rosout]
load_parameters: unable to set parameters (last param was [None]): <Fault 0: 
'No such handler: system.multicall'>
Traceback (most recent call last):
  File "/opt/ros/electric/stacks/ros_comm/tools/roslaunch/src/roslaunch/__init__.py", line 252, in main
    p.start()
  File "/opt/ros/electric/stacks/ros_comm/tools/roslaunch/src/roslaunch/parent.py", line 265, in start
    self.runner.launch()
  File "/opt/ros/electric/stacks/ros_comm/tools/roslaunch/src/roslaunch/launch.py", line 644, in launch
    self._setup()
  File "/opt/ros/electric/stacks/ros_comm/tools/roslaunch/src/roslaunch/launch.py", line 631, in _setup
    self._load_parameters()
  File "/opt/ros/electric/stacks/ros_comm/tools/roslaunch/src/roslaunch/launch.py", line 311, in _load_parameters
    r = param_server_multi()
  File "/usr/lib/python2.7/xmlrpclib.py", line 997, in __call__
    return MultiCallIterator(self.__server.system.multicall(marshalled_list))
  File "/usr/lib/python2.7/xmlrpclib.py", line 1224, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1575, in __request
    verbose=self.__verbose
  File "/usr/lib/python2.7/xmlrpclib.py", line 1264, in request
    return self.single_request(host, handler, request_body, verbose)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1297, in single_request
    return self.parse_response(response)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1473, in parse_response
    return u.close()
  File "/usr/lib/python2.7/xmlrpclib.py", line 793, in close
    raise Fault(**self._stack[0])
Fault: <Fault 0: 'No such handler: system.multicall'>
[rosout-1] killing on exit

What version of the product are you using? On what operating system?

The current head release, compiled under Ubuntu 11.10 and executed on a JVM 
running on Windows 7.

Please provide any additional information below.

The output indicates that roslaunch requires an implementation of the 
'multicall' function to run properly. Running nodes individually outside of the 
launch file works as expected.

Original issue reported on code.google.com by matthewb...@gmail.com on 31 Jan 2012 at 6:03

GoogleCodeExporter commented 9 years ago
It looks like there is support for this in ws-xmlrpc. But, it needs to be set 
up correctly.

Original comment by damonkoh...@google.com on 31 Jan 2012 at 6:23

GoogleCodeExporter commented 9 years ago
From what I see -- and I note that this is the first time I've looked at the 
xmlrpc package -- multicall functionality isn't incorporated into the java 
version of xmlrpc v.3. I've modified XmlRpcStreamServer.java to handle it, 
found in the attached diff.

Original comment by jkramert...@gmail.com on 18 Apr 2012 at 2:30

Attachments: