0

嗨,我是 Mule 的新手!我想运行这个简单的应用程序(从 url 接收输入并使用 twitter 连接器发布到我的 twitter 帐户)。我尝试首先将它部署在 CloudHub 上,它可以工作http://twitterconnector.cloudhub.io/addtweet?mymessage=firsttweet 之后我想尝试在 Tomcat 上部署,所以我使用 maven 创建了简单的 webapp,并将 Mule 的所有必需依赖项放在 pom 中.xml,设置 web.xml 和 mule-config.xml 文件,当我转到 localhost:8181/easymule-test/services/addtweet?mymessage=firsttweet 它不工作!

有人可以帮助/解释问题所在吗?比你提前!!这是流程:

  <flow name="twitterconnectorFlow1" doc:name="twitterconnectorFlow1">
  <servlet:inbound-endpoint path="addtweet" responseTimeout="10000" doc:name="Servlet"/>
   <twitter:update-status config-ref="test_ECAccount" status="#[header:INBOUND:mymessage]" doc:name="Twitter Connector"/>
   <expression-transformer evaluator = "groovy" expression="payload.toString()" returnSourceIfNull="true" doc:name="Expression"/>
    </flow>

编辑: web.xml 配置片段

   <web-app>
  <display-name>easymule-test</display-name>
  <context-param>
    <param-name>org.mule.config</param-name>
    <param-value>/WEB-INF/muleconfig.xml</param-value>
</context-param>

   <listener>
        <listener-class>org.mule.config.builders.MuleXmlBuilderContextListener</listener-class>
    </listener>

    <servlet>
        <servlet-name>ajax</servlet-name>
        <servlet-class>org.mule.transport.ajax.container.MuleAjaxServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet>
        <servlet-name>muleServlet</servlet-name>
        <servlet-class>org.mule.transport.servlet.MuleReceiverServlet</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>

    <servlet>
        <servlet-name>muleResources</servlet-name>
        <servlet-class>org.mule.transport.ajax.MuleJarResourcesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>muleServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>muleResources</servlet-name>
        <url-pattern>/mule-resource/*</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>ajax</servlet-name>
        <url-pattern>/ajax/*</url-pattern>
    </servlet-mapping>
</web-app>
4

1 回答 1

1

servlet 端点路径是路径而不是地址,因此请使用:

<servlet:inbound-endpoint path="sendtweet" ...

假设:

  • 您的网络应用程序部署在/easymule-test上下文中,
  • 并在端口上运行8181
  • 并且org.mule.transport.servlet.MuleReceiverServlet绑定到services路径

然后您将访问上述端点http://localhost:8181/easymule-test/services/sendtweet

于 2012-11-10T23:37:01.283 回答