0

最近、SpringSource CloudFoundryマイクロクラウドインスタンスを設定し、ここにあるRabbitMQ(コード付き)を使用して、かなり簡単なメッセージングの例を実行しようとしています。

http://support.cloudfoundry.com/entries/20322602-getting-started-with-the-rabbitmq-service-from-a-spring-application

アプリのパブリックワーキングインスタンスはここで提供されます:

http://rabbit-simple.cloudfoundry.com

これを試みると、環境が適切にセットアップされ、コードがビルドされ、デプロイされ(vmcコマンドラインツールを使用)、rabbitmqサービスに問題なくバインドされます。'vmcapps'の実行によるコンソール出力は次のとおりです。

Macintosh-2:target wlaprise$ vmc push rabbit-simple
Would you like to deploy from the current directory? [Yn]: y
Application Deployed URL ["rabbit-simple.c3works.cloudfoundry.me"]: 
Detected a Java SpringSource Spring Application, is this correct? [Yn]: y
Memory Reservation ("64M", "128M", "256M", "512M", "1G") ["512M"]: 
Creating Application: OK
Would you like to bind any services to 'rabbit-simple'? [yN]: y
The following system services are available
1: mongodb
2: mysql
3: postgresql
4: rabbitmq
5: redis
Please select one you wish to provision: 4
Specify the name of the service ["rabbitmq-fad62"]: 
Creating Service: OK
Binding Service [rabbitmq-fad62]: OK
Uploading Application:
  Checking for available resources: OK
  Processing resources: OK
  Packing application: OK
  Uploading (2K): OK   
Push Status: OK
Staging Application: OK                                                         
Starting Application: OK                                                        

Macintosh-2:target wlaprise$ vmc apps

+---------------+----+---------+---------------------------------------+----------------+
| Application   | #  | Health  | URLS                                  | Services       |
+---------------+----+---------+---------------------------------------+----------------+
| rabbit-simple | 1  | RUNNING | rabbit-simple.c3works.cloudfoundry.me | rabbitmq-fad62 |
+---------------+----+---------+---------------------------------------+----------------+

ブラウザからアプリを実行しようとすると、最初は入力フォームが正しく表示されますが、メッセージを入力して[公開]をクリックすると、次の500エラーが返されます。

Exception--------
org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoSuchMethodError: org.springframework.amqp.core.MessageProperties.getReplyTo()Lorg/springframework/amqp/core/Address;
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:839)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause
java.lang.NoSuchMethodError: org.springframework.amqp.core.MessageProperties.getReplyTo()Lorg/springframework/amqp/core/Address;
    org.springframework.amqp.rabbit.support.DefaultMessagePropertiesConverter.fromMessageProperties(DefaultMessagePropertiesConverter.java:120)
    org.springframework.amqp.rabbit.core.RabbitTemplate.doSend(RabbitTemplate.java:365)
    org.springframework.amqp.rabbit.core.RabbitTemplate$1.doInRabbit(RabbitTemplate.java:164)
    org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:330)
    org.springframework.amqp.rabbit.core.RabbitTemplate.send(RabbitTemplate.java:162)
    org.springframework.amqp.rabbit.core.RabbitTemplate.convertAndSend(RabbitTemplate.java:179)
    org.springframework.amqp.rabbit.core.RabbitTemplate.convertAndSend(RabbitTemplate.java:175)
    com.c3works.msg.HomeController.publish(HomeController.java:25)

誰かがこれをうまくやって、私が間違っているかもしれないことを知っていますか(RabbitMQの問題、CloudFoundryの問題、私自身の問題:0)?

SpringSourceのチュートリアルコードと同じではなかったのは、HomeControllerの戻り文字列を次のように変更することだけでした。return "WEB-INF / views / home.jsp"; viewResolverがspring-context.xmlファイルで設定された方法と一致するように「ホーム」に移動します(これは、入力フォームを正しく表示するためにも必要でした)。

ありがとう。

4

1 に答える 1

0

STSエディターを使用せずにこれを最初から再構築しましたが、正しく機能します。STS IDE内のMavenプロジェクトからビルドすることで問題が発生した理由を実際に説明することはできませんが、テキストエディターとvmcコマンドライン命令だけを使用してすべてをクリーンにビルドできました。

于 2011-11-28T01:31:51.663 に答える