2011-12-08 6 views
1

Это RESTful интерфейс вложения в Mule, который принимает имя пользователя и выход «Привет, $ имя»Mule Restlet приложение не работает

Ниже часть содержания в муле-config.xml

 <model name="greetingModel"> 
      <service name="greetingService"> 
       <inbound> 
        <inbound-endpoint address="http://localhost:9004"/> 
       </inbound> 
       <outbound> 
        <filtering-router> 
         <outbound-endpoint address="vm://greeting"/> 
         <restlet:uri-template-filter pattern="/hello/{set-payload.name}" verbs="GET"/> 
        </filtering-router> 
       </outbound> 
      </service> 
      <service name="greeting"> 
       <inbound> 
        <inbound-endpoint address="vm://greeting" exchange-pattern="request-response"></inbound-endpoint> 
       </inbound> 
       <component class="com.ggd543.mulerestletdemo.GreetingComponent"></component> 
      </service> 
    </model> 

и класс компонента

package com.ggd543.mulerestletdemo 

import org.mule.api.lifecycle.Callable 
import org.mule.api.MuleEventContext 

class GreetingComponent extends Callable { 

    def onCall(eventContext: MuleEventContext) = { 
     val name = eventContext.getMessage.getPayload.asInstanceOf[String] 
     sayHello(name) 
    } 

    def sayHello(name: String) = { 
    val msg = "hello, "+name 
    println(msg) 
    msg 
    } 
} 

После развертывания приложения успешно, я пытался посетить http://localhost:9004/hello/archer в моем браузере, но ничего не произошло.

Есть ли что-то неправильное в mule-config.xml?

PS: Мой мул версия 3.1.2 и я использую мул-транспортный-Restlet-1.1.3.jar

ответ

1

Проблема связана с противоречивой меновой узоры на конечной точке VM. Попробуйте:

<model name="greetingModel"> 
     <service name="greetingService"> 
      <inbound> 
       <inbound-endpoint address="http://localhost:9004"/> 
      </inbound> 
      <outbound> 
       <filtering-router> 
        <outbound-endpoint address="vm://greeting" exchange-pattern="request-response"/> 
        <restlet:uri-template-filter pattern="/hello/{set-payload.name}" verbs="GET"/> 
       </filtering-router> 
      </outbound> 
     </service> 
     <service name="greeting"> 
      <inbound> 
       <inbound-endpoint address="vm://greeting" exchange-pattern="request-response"/> 
      </inbound> 
      <component class="com.ggd543.mulerestletdemo.GreetingComponent" /> 
     </service> 
</model> 
Смежные вопросы