#11 √ resolved
Nicolas Laplante

Moveable Type API broken with Windows Live Writer

Reported by Nicolas Laplante | January 26th, 2009 @ 05:55 AM | in Typo 5.3

When adding a blog account from Windows Live Writer, selecting the Moveable Type API (as per 5.2's documentation) and specifying http://myhost/backend/xmlrpc as the api URL, I get Error 500.

The same blog configuration worked fine with 5.1.3.

Here is an excerpt from shovel-backend.log:


ActionWebService::Dispatcher::DispatcherError (Malformed SOAP or XML-RPC protocol message):
    /vendor/actionwebservice/lib/action_web_service/dispatcher/action_controller_dispatcher.rb:71:in `new'
    /vendor/actionwebservice/lib/action_web_service/dispatcher/action_controller_dispatcher.rb:71:in `dispatch_web_service_request'
    /app/controllers/backend_controller.rb:19:in `api'
    /app/controllers/backend_controller.rb:15:in `xmlrpc'
    /vendor/rails/actionpack/lib/action_controller/base.rb:1253:in `send'
    /vendor/rails/actionpack/lib/action_controller/base.rb:1253:in `perform_action_without_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:617:in `call_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `run_before_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:206:in `call'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:206:in `around_proc'
    /vendor/rails/activesupport/lib/active_support/callbacks.rb:182:in `call'
    /vendor/rails/activesupport/lib/active_support/callbacks.rb:182:in `evaluate_method'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:184:in `call'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:635:in `run_before_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:615:in `call_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:610:in `perform_action_without_benchmark'
    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
    /usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure'
    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
    /vendor/rails/actionpack/lib/action_controller/rescue.rb:136:in `perform_action_without_caching'
    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache'
    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
    /vendor/rails/actionpack/lib/action_controller/base.rb:524:in `send'
    /vendor/rails/actionpack/lib/action_controller/base.rb:524:in `process_without_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:606:in `process_without_session_management_support'
    /vendor/rails/actionpack/lib/action_controller/session_management.rb:134:in`process'
    /vendor/rails/actionpack/lib/action_controller/base.rb:392:in `process'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:183:in `handle_request'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:110:in `dispatch_unlocked'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:123:in `dispatch'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:122:in `synchronize'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:122:in `dispatch'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:132:in `dispatch_cgi'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:39:in `dispatch'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:76:in `process'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:74:in `synchronize'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:74:in `process'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:159:in `process_client'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:158:in `each'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:158:in `process_client'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `initialize'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `new'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `initialize'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `new'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:282:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:281:in `each'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:281:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:128:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongre/command.rb:212:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
    /usr/local/bin/mongrel_rails:19:in `load'
    /usr/local/bin/mongrel_rails:19

Comments and changes to this ticket

  • Cyril Mougel

    Cyril Mougel January 26th, 2009 @ 07:56 AM

    • → Tag changed from “api backend” to “api backend moveable xmlrpc”

    can you paste the request generate. In this request, we can see the XML generate and all data send to Typo.

  • Nicolas Laplante

    Nicolas Laplante January 26th, 2009 @ 02:16 PM

    I'll install a network monitoring program to intercept the network traffic between Live Writer and Typo. I'll get back to you as soon as I get home tonight.

    BTW, do you know of any useful program I could use? I found SoftX HTTP Debugger (http://www.softx.org/).

    >
  • Cyril Mougel

    Cyril Mougel January 26th, 2009 @ 04:07 PM

    I ask no more information than production.log send to you.

  • Nicolas Laplante

    Nicolas Laplante January 26th, 2009 @ 09:53 PM

    Here's my production.log. I enabled the "debug" log level, so there should be some useless info before the actual error. I took the file right after the error, so it's at the end of the file (which is rather small anyway).

    I hope you have the information you need.

  • Frédéric de Villamil

    Frédéric de Villamil January 27th, 2009 @ 05:51 PM

    Output when using MarsEdit

    
    Processing BackendController#xmlrpc (for ipaddress at 2009-01-27 16:44:02) [POST]
      Parameters: {"methodCall"=>{"methodName"=>"blogger.newPost", "params"=>{"param"=>[{"value"=>{"string"=>"long hash"}}, {"value"=>{"string"=>"1"}}, {"value"=>{"string"=>"myusername"}}, {"value"=>{"string"=>"mypassword"}}, {"value"=>{"string"=>"blog body"}}, {"value"=>{"boolean"=>"1"}}]}}}
     
    ActionWebService::Dispatcher::DispatcherError (Malformed SOAP or XML-RPC protocol message):
        /vendor/actionwebservice/lib/action_web_service/dispatcher/action_controller_dispatcher.rb:71:in `new'
        /vendor/actionwebservice/lib/action_web_service/dispatcher/action_controller_dispatcher.rb:71:in `dispatch_web_service_request'
        /app/controllers/backend_controller.rb:19:in `api'
        /app/controllers/backend_controller.rb:15:in `xmlrpc'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:1253:in `send'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:1253:in `perform_action_without_filters'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:617:in `call_filters'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:638:in `run_before_filters'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:206:in `call'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:206:in `around_proc'
        /home/d3wu/.gem/ruby/1.8/gems/activesupport-2.2.2/lib/active_support/callbacks.rb:182:in `call'
        /home/d3wu/.gem/ruby/1.8/gems/activesupport-2.2.2/lib/active_support/callbacks.rb:182:in `evaluate_method'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:184:in `call'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:635:in `run_before_filters'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:615:in `call_filters'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:610:in `perform_action_without_benchmark'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
        /opt/ruby-enterprise/lib/ruby/1.8/benchmark.rb:293:in `measure'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/rescue.rb:136:in `perform_action_without_caching'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/caching/sql_cache.rb:13:in `passenger_orig_perform_action'
        /home/d3wu/.gem/ruby/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache'
        /home/d3wu/.gem/ruby/1.8/gems/activerecord-2.2.2/lib/active_record/query_cache.rb:8:in `cache'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/caching/sql_cache.rb:12:in `passenger_orig_perform_action'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/railz/request_handler.rb:53:in `perform_action'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:524:in `send'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:524:in `process_without_filters'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:606:in `process_without_session_management_support'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/session_management.rb:134:in `process'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:392:in `process'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:183:in `handle_request'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:110:in `dispatch_unlocked'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:123:in `dispatch'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:122:in `synchronize'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:122:in `dispatch'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:132:in `dispatch_cgi'
        /home/d3wu/.gem/ruby/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:39:in `dispatch'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/railz/request_handler.rb:38:in `process_request'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/abstract_request_handler.rb:165:in `main_loop'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/railz/application_spawner.rb:321:in `start_request_handler'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/railz/application_spawner.rb:282:in `handle_spawn_application'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/utils.rb:163:in `safe_fork'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/utils.rb:161:in `fork'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/utils.rb:161:in `safe_fork'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/railz/application_spawner.rb:280:in `handle_spawn_application'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/utils.rb:163:in `safe_fork'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/utils.rb:161:in `fork'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/utils.rb:161:in `safe_fork'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/railz/application_spawner.rb:279:in `handle_spawn_application'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/abstract_server.rb:317:in `__send__'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/abstract_server.rb:317:in `main_loop'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/abstract_server.rb:168:in `start_synchronously'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/abstract_server.rb:135:in `start'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/abstract_server.rb:112:in `fork'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/abstract_server.rb:112:in `start'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/railz/application_spawner.rb:179:in `start'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/spawn_manager.rb:222:in `spawn_rails_application'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/spawn_manager.rb:217:in `synchronize'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/spawn_manager.rb:217:in `spawn_rails_application'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/spawn_manager.rb:126:in `spawn_application'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/spawn_manager.rb:251:in `handle_spawn_application'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/abstract_server.rb:317:in `__send__'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/abstract_server.rb:317:in `main_loop'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/abstract_server.rb:168:in `start_synchronously'
        /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.0.6/bin/passenger-spawn-server:46
    
  • Nicolas Laplante

    Nicolas Laplante January 28th, 2009 @ 06:29 PM

    This is the output from Flickr:

    Processing BackendController#xmlrpc (for myIp at 2009-01-28 12:20:39) [POST] Parameters: {"methodCall"=>{"methodName"=>"metaWeblog.getUsersBlogs", "params" =>{"param"=>[{"value"=>{"string"=>"NO-APP-KEY"}},

    {"value"=>{"string"=>"myUser"}}, {"value"=>{"string"=>"myPassword"}}]}}}
    
    

    ActionWebService::Dispatcher::DispatcherError (Malformed SOAP or XML-RPC protocol message):

    /vendor/actionwebservice/lib/action_web_service/dispatcher/action_controller_dispatcher.rb:71:in `new'
    /vendor/actionwebservice/lib/action_web_service/dispatcher/action_controller_dispatcher.rb:71:in `dispatch_web_service_request'
    /app/controllers/backend_controller.rb:19:in `api'
    /app/controllers/backend_controller.rb:15:in `xmlrpc'
    /vendor/rails/actionpack/lib/action_controller/base.rb:1253:in `send'
    /vendor/rails/actionpack/lib/action_controller/base.rb:1253:in `perform_action_without_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:617:in `call_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `run_before_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:206:in `call'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:206:in `around_proc'
    /vendor/rails/activesupport/lib/active_support/callbacks.rb:182:in `call'
    /vendor/rails/activesupport/lib/active_support/callbacks.rb:182:in `evaluate_method'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:184:in `call'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:635:in `run_before_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:615:in `call_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:610:in `perform_action_without_benchmark'
    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
    /usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure'
    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
    /vendor/rails/actionpack/lib/action_controller/rescue.rb:136:in `perform_action_without_caching'
    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache'
    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
    /vendor/rails/actionpack/lib/action_controller/base.rb:524:in `send'
    /vendor/rails/actionpack/lib/action_controller/base.rb:524:in `process_without_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:606:in `process_without_session_management_support'
    /vendor/rails/actionpack/lib/action_controller/session_management.rb:134:in`process'
    /vendor/rails/actionpack/lib/action_controller/base.rb:392:in `process'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:183:in `handle_request'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:110:in `dispatch_unlocked'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:123:in `dispatch'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:122:in `synchronize'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:122:in `dispatch'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:132:in `dispatch_cgi'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:39:in `dispatch'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:76:in `process'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:74:in `synchronize'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:74:in `process'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:159:in `process_client'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:158:in `each'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:158:in `process_client'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `initialize'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `new'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `initialize'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `new'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:282:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:281:in `each'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:281:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:128:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/command.rb:212:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
    /usr/local/bin/mongrel_rails:19:in `load'
    /usr/local/bin/mongrel_rails:19
    
    

    Completed in 32ms (View: 0, DB: 1) | 500 Internal Server Error [http://nlaplante.com/backend/xmlrpc]

  • Nicolas Laplante

    Nicolas Laplante February 4th, 2009 @ 12:10 AM

    I just found this over the net. Seems to be related to Typo, but I don't know if it applies to this issue. And to top this, I don't understand a word of what's being discussed. Seems to be in Czech language or something similar.

    http://pr0d1r2.wordpress.com/200...

  • Cyril Mougel

    Cyril Mougel February 4th, 2009 @ 12:47 AM

    I saw this post after writing. I don't understand the polish too. But all change made are already push in Typo 5.2. Now it's outdated.

  • Nicolas Laplante

    Nicolas Laplante February 4th, 2009 @ 03:19 AM

    I just tried with BloGTK 1.1.

    Using a local copy of Typo 5.2, I could connect, choose categories and post a blog article without problems.

    When I try to connect to my real blog at http://nlaplante.com/ I always get an error message saying I should check my configuration.

    I tried with the Blogger, Movable Type and MetaWebLog apis and I got the error each time. The logs said "Malformed SOAP or XML-RPC protocol message" in each case.

    That means it can't even successfully retrieve stuff like user blogs, posted entries and categories.

    I'm not Ruby-savvy enough to go and hack the code, but I found that the error is thrown because the ActionWebService module can't decode the request:

    /vendor/actionwebservice/lib/action_web_service/dispatcher/action_controller_dispatcher.rb:48

    
    
                begin
                  ws_request = discover_web_service_request(request)
                rescue Exception => e
                  exception = e
                end
                if ws_request
                  ws_response = nil
                  exception = nil
                  bm = Benchmark.measure do
                    begin
                      ws_response = invoke_web_service_request(ws_request)
                    rescue Exception => e
                      exception = e
                    end
                  end
                  log_request(ws_request, request.raw_post)
                  if exception
                    log_error(exception) unless logger.nil?
                    send_web_service_error_response(ws_request, exception)
                  else
                    send_web_service_response(ws_response, bm.real)
                  end
                else
                  exception ||= DispatcherError.new("Malformed SOAP or XML-RPC protocol message")
                  log_error(exception) unless logger.nil?
                  send_web_service_error_response(ws_request, exception)
                end
    
    

    It seems that discover_web_service_request(request) returns nil. I think this error should be attributed to ActionWebService. Is Typo 5.2 using the right version?

  • Nicolas Laplante

    Nicolas Laplante February 4th, 2009 @ 03:23 AM

    I just saw the version of actionwebservice in /vendor of Typo 5.2 is 2.1.0.

    On my hosting server, here's what's installed:

    
    -bash-3.2$ gem list actionwebservice
    
    *** LOCAL GEMS ***
    
    actionwebservice (1.2.6, 1.1.6)
    -bash-3.2$ 
    

    Could the server's old versions override the one in Typo?

  • Cyril Mougel

    Cyril Mougel February 4th, 2009 @ 08:40 AM

    The actionwebservice in vendor override always the actionwebservice in gem.

    If you want verify, put a little print in your actionWebservice vendor directory and see if this print is out.

  • Nicolas Laplante

    Nicolas Laplante February 4th, 2009 @ 06:44 PM

    Here's what Flickr is sending (got it by reading the html source of the blog configuration page):

    
    <?xml version="1.0" encoding="utf-8"?>
    <methodCall>
    	<methodName>metaWeblog.getUsersBlogs</methodName>
    	<params>
    		<param><value><string>NO-APP-KEY</string></value></param>
    		<param><value><string>nlaplante</string></value></param>
    		<param><value><string>b2hn51ls</string></value></param>
    	</params>
    </methodCall>
    
    
    response:
    Internal protocol error: Exception raised
    

    That seems like a basic XML-RPC message request... I really can't find the cause of the problem.

  • Jamie Penney

    Jamie Penney February 19th, 2009 @ 02:55 AM

    I am also having this problem. Does it have anything to do with the problem outlined on this page? http://lists.rubyonrails.org/pip...

    I don't know a lot of ruby so I can't test this out. I can't even find the definition of the method that is failing - discover_web_service_request(request).

    Does XMLRPC work on anyone else's blog?

  • John Maenpaa

    John Maenpaa February 19th, 2009 @ 03:37 AM

    I believe it has something to do with the backlevel actionwebservice. I was able to get past this by adding these lines (from the more current source tree and I upgraded will_paginate to 2.3.7) to my typo-5.2 gem and installing the gems. I didn't do a lot of testing, but it resolved this issue.

    
      # Declare needed (github) gems
      config.gem 'datanoise-actionwebservice', :version => '2.2.2', :lib => 'actionwebservice', :source => 'http://gems.github.com'
      config.gem 'mislav-will_paginate', :version => '2.3.7', :lib => 'will_paginate', :source => 'http://gems.github.com'
    
  • Jamie Penney

    Jamie Penney February 19th, 2009 @ 04:26 AM

    Sorry if this is a basic question, but which file in my typo directory would I put those lines in? Or do I have to modify the Typo gem itself and reinstall it?

  • John Maenpaa

    John Maenpaa February 19th, 2009 @ 06:36 AM

    Sorry forgot. Yes. Put those lines into config/environment.rb of the typo-5.2 gem, then run the typo command to install/update. At least that is the way I did it. I'd think you could change your blog's version and get the same effect. I didn't do it that way as I needed to update multiple blogs.

    You can see the source at http://github.com/fdv/typo/blob/...

  • Jamie Penney

    Jamie Penney February 19th, 2009 @ 07:23 AM

    I put those two lines in my config/environment.rb in the config section and it works perfectly! Thank you so much.

  • Cyril Mougel

    Cyril Mougel February 19th, 2009 @ 10:10 AM

    Thanks for your report. I go update will_paginate gem in master branch.

    But nicolas can test this fix and report here if his issue fixed. before fixed this issue ?

  • Cyril Mougel
  • Nicolas Laplante

    Nicolas Laplante February 19th, 2009 @ 04:56 PM

    I'll test this out tonight and report here.

    Thanks!

  • Nicolas Laplante

    Nicolas Laplante February 19th, 2009 @ 06:34 PM

    Well, couldn't wait until tonight. I tested using Flickr, as I don't have Windows Live Writer installed here.

    It worked fine. I'll test and confirm with Live Writer tonight.

    Notice that I just added the lines to my existing environment.rb, ran "rake gems:install" and restarted my app.

  • Frédéric de Villamil

    Frédéric de Villamil February 19th, 2009 @ 09:06 PM

    • → State changed from “new” to “resolved”

    So, I consider this ticket as closed since the fix was backported in the master branch.

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile »

Being around since March 2005, Typo is (probably) the oldest blogging platform in Rails. It has a full set of feature you would expect from such an engine, powerful SEO capabilities and full themes and plugin extension

Attachments

You can update this ticket by sending an email to from your email client. (help)