`
arrongao
  • 浏览: 26686 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

actionwebservice使用时遇到的几个问题

阅读更多
    最近接了一个项目,要用到web service,所以现学现用了,不过在学习的过程中遇到了几个问题,而且也是很多网友遇到的问题,却没有在网上找到解答(也许是我的检索太差了),所以写blog总结一下。

    本人和很多网友都是看的这篇文章http://www.ibm.com/developerworks/cn/opensource/os-ws-rubyrails/index.html,所以具体实现细节参见此文章,本文只写遇到的问题及解决方法。

问题一:安装actionwebservice

上文的安装命令“gem install actionwebservice”是为rails1.2.6提供的,如果在rails更高版本(本人测试的是2.1.1和2.3.4)上安装此gem后在运行过程中会报错,所以针对不同的rails版本要安装不同的actionwebservice,可以到rubyforge.comrubygems.org上搜索rails各版本的actionwebservice,比如rails2.1.1可以安装dougbarth-actionwebservice,2.3.4可以安装ywen-actionwebservice,这样,actionwebservice的安装就OK了。

问题二:异常uninitialized constant HelloMessageController::HelloMessageApi

异常原因:rails在启动时默认会加载app下的controllers,helpers,models和views四个目录,但是hello_message_api.rb是存放在app/apis/目录下,默认启动时是不会加载此目录的,因此在请求http://localhost:3000/hello_message/wsdl时就会找不到HelloMessageApi了,抛异常也是应该的了。
解决方法:在config/environment.rb文件中加入如下代码,以通知rails在启动时加载app/apis目录下的内容。
config.load_paths += %W( #{RAILS_ROOT}/app/apis )

注意,这段代码是要添加在Rails::Initializer.run代码块的。再次启动server此问题就解决了,不过可能还会遇到问题

问题三:异常uninitialized constant ActionWebService或api_method方法没有定义

异常原因:没有找到actionwebservice的gem
解决方法:在config/environment.rb文件的Rails::Initializer.run代码块中添加如下代码
config.gem "ywen-actionwebservice", :lib => "action_web_service", :version => "2.3.4.1"

注:ywen-actionwebservice是gem的名称,version是gem的版本号,这两个值都是根据所安装gem而确定。

问题四:与 include Reloadable::Deprecated 有关的错误

可能会报与include Reloadable::Deprecated有关的错误,基本意思是Reloadable类没有定义。

异常原因:rails是2.0以上的版本,而actionwebservice安装的版本是1.2.6,所以会报此错误。
解决方法:按照问题一处理就OK了。


以上就是在接触actionwebservice时遇到的问题,现在看来问题很简单,可当时却用了很多时间才解决,回想一下发现自己的问题所在:对rails只知道使用,还不知道内部结构,或者说是知道其简单内部结构,但是在处理问题时想的不够深入,不会去向那个方向想,所以浪费了很多时间。

分享到:
评论

相关推荐

    使用JRuby开发Web Service全攻略

    本文介绍了如何用JRuby开发Web Service。用JRuby开发Web Service,需要安装ActionWebService。安装完毕之后便可以开始调用及部署了。

    rails-1.2.3

    rails-1.2.3所需要的gem文件包括: * activesupport-1.4.2.gem * activerecord-1.15.3.gem * actionpack-1.13.3.gem * actionmailer-1.3.3.gem * actionwebservice-1.2.3.gem * rails-1.2.3.gem

    enterprise_rails.pdf

    ActionWebService and Rails 2.0 217 Creating an Abstraction Barrier 218 ActiveRecord As the Physical Model Layer 218 The Object Model Layer 220 Defining the API 225 More Testing 230 The Client Plugin ...

    pre_o_1csdn63m9a1bs0e1rr51niuu33e.a

    pre_o_1csdn63m9a1bs0e1rr51niuu33e.a

    matlab建立计算力学课程的笔记和文件.zip

    matlab建立计算力学课程的笔记和文件.zip

    FT-Prog-v3.12.38.643-FTD USB 工作模式设定及eprom读写

    FT_Prog_v3.12.38.643--FTD USB 工作模式设定及eprom读写

    matlab基于RRT和人工势场法混合算法的路径规划.zip

    matlab基于RRT和人工势场法混合算法的路径规划.zip

    matlab基于matlab的两步定位软件定义接收机的开源GNSS直接位置估计插件模块.zip

    matlab基于matlab的两步定位软件定义接收机的开源GNSS直接位置估计插件模块.zip

    office 2016三和一精简版

    office 2016三和一精简版

    Scrapy-1.0.2-py2-none-any.whl

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    麦肯锡咨询顾问必备宝典-时间管理.ppt

    麦肯锡咨询顾问必备宝典-时间管理.ppt

    setuptools-0.6c10-py2.4.egg

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    麦肯锡顾问的黄金思考方法.pptx

    麦肯锡顾问的黄金思考方法.pptx

    91fdd461elb59a4ce8dfcfc46bc283a7.msi

    91fdd461elb59a4ce8dfcfc46bc283a7.msi

    ansys maxwell

    ansys maxwell

    5-5.py

    5-5

    xx广告促销计划流程实施手册.ppt

    xx广告促销计划流程实施手册.ppt

    仿小米商城微信小程序源码+项目说明.zip

    仿小米商城微信小程序源码+项目说明.zip

    pytest-4.6.0.tar.gz

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    Scrapy-2.10.1.tar.gz

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

Global site tag (gtag.js) - Google Analytics