繁体   English   中英

在Webapp中部署和运行嵌入式Mule(Mule Twitter集成)

[英]deploying and running embedded mule in webapp (Mule twitter integration)

嗨,我是M子的新宝宝! 我想运行这个简单的应用程序(接收来自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>

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

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

假设:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM