在MULE中添加一个java类作为bean

时间:2013-03-03 10:42:12

标签: java wsdl mule flow payload

在MULE 3.3.0 CE中,我用构造函数和两个方法编写了一个简单的java类,我在下面复制了它们:

 public class Book {
        private String title;

        public Book(String theTitle) {
            // TODO Auto-generated constructor stub
            title = theTitle;
        }

        public String getTitle(){
            return title;
        }

        public String displayAuthorName(String authorName) {
            return authorName;
        }
    }

现在我想在我的.mflow(配置XML)中添加我的java类作为bean,然后将有效负载传递给java类方法。

我该怎么办?

1 个答案:

答案 0 :(得分:3)

为了完成这项工作,您需要:

  1. 将您的组件定义为spring bean。
  2. 定义组件的入口点。
  3. 在流程中使用您的组件。
  4. 以下是一个例子:

    package com.mypackage.test;
    
    import org.mule.api.annotations.param.Payload;
    
        public class MyComponent {
    
        private String myProperty;
    
        public String getMyProperty() {
            return myProperty;
        }
    
        public void setMyProperty(String myProperty) {
            this.myProperty = myProperty;
        }
    
        public String doProcess(@Payload String payload) {
            //do something interesting
            return "You said: " + payload;
        }
    
    }
    

    定义入口点的方法是使用@Payload注释。

    然后是样本流程:

    <spring:bean id="myBean" class="com.mypackage.test.MyComponent">
        <spring:property name="myProperty" value="Some Value" />
    </spring:bean>
    
    <flow name="componentFlow">
        <http:inbound-endpoint address="http://localhost:8082/test" />
        <component>
            <spring-object bean="myBean" />
        </component>
        <set-property propertyName="Content-Type" value="text/plain" doc:name="Property" />
    </flow>