【问题标题】:deploying and running embedded mule in webapp (Mule twitter integration)在 webapp 中部署和运行嵌入式 mule(Mule twitter 集成)
【发布时间】:2012-11-22 17:03:07
【问题描述】:

嗨,我是 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>

【问题讨论】:

  • 你能分享你遇到的错误吗?
  • 在此路径上找不到 HTTP 404 资源
  • 您能否也显示web.xml 的位您加载和引导Mule 的位置?
  • 嗨,David,我在这里编辑问题是我的 web.xml 和更新的 Mule 流程。
  • 我使用类似的参数运行:我的配置中唯一的区别是我从类路径而不是/WEB-INF 加载配置。但如果失败,你会看到 Mule 抱怨无法加载 /WEB-INF/muleconfig.xml:我认为它加载正常。

标签: maven twitter esb mule


【解决方案1】:

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

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

假设:

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

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

【讨论】:

  • 谢谢大卫,我已经更改了它,但它不断给我 HTTP 404 资源不可用
  • 对,我忘了提到 Mule servlet,抱歉。
  • 我还有 404 :( 有什么建议吗?提前谢谢你!!
  • servlet:connector 中删除servletUrl,我从未设置此属性,它对我来说很好。
猜你喜欢
  • 2015-10-02
  • 2018-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-21
  • 2014-04-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多