linux - 为什么 Mule 应用程序在 Linux 服务器中表现异常?

标签 linux tomcat mule

我和 Mule 一起工作,但遇到了一些问题。

我的 mainflow.xml:

<?xml version="1.0" encoding="UTF-8"?><mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:vm="http://www.mulesoft.org/schema/mule/vm"
xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans" xmlns:core="http://www.mulesoft.org/schema/mule/core"
xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:management="http://www.mulesoft.org/schema/mule/management"
version="CE-3.3.0"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/vm http://www.mulesoft.org/schema/mule/vm/current/mule-vm.xsd http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd http://www.mulesoft.org/schema/mule/management http://www.mulesoft.org/schema/mule/management/current/mule-management.xsd">

<!-- For show MX4J -->
<management:jmx-default-config port="1098"
    registerMx4jAdapter="true">
</management:jmx-default-config>
<management:jmx-mx4j-adaptor jmxAdaptorUrl="http://localhost:9999"
    login="admin" password="admin">
</management:jmx-mx4j-adaptor>
<management:jmx-server enableStatistics="true">
    <management:connector-server
        url="service:jmx:rmi:///jndi/rmi://localhost:1099/server" rebind="false" />
</management:jmx-server>
<management:rmi-server createRegistry="true" />

<!-- For get statistics -->
<notifications>
    <notification event="EXCEPTION" />
    <notification event="ENDPOINT-MESSAGE" />
    <notification-listener ref="endpointNotificationLogger" />
    <notification-listener ref="statesModuleExceptionNotificationListener" />
</notifications>

<spring:beans>

    <!-- For show MX4J -->
    <spring:bean id="exporter"
        class="org.springframework.jmx.export.MBeanExporter" lazy-init="false">
        <spring:property name="beans">
            <spring:map>
                <spring:entry key="bean:name=MBean1"
                    value-ref="MBean1" />
                <spring:entry key="bean:name=MBean2"
                    value-ref="MBean2" />
            </spring:map>
        </spring:property>
    </spring:bean>
    <spring:bean id="MBean1" name="MBean1"
        class="MBean1"></spring:bean>
    <spring:bean id="MBean2" name="MBean2"
        class="MBean2"></spring:bean>

    <!-- For get statistics -->
    <spring:bean name="endpointNotificationLogger"
        class="MyEndpointNotificationListener" />
    <spring:bean name="myExceptionNotificationListener"
        class="MyExceptionNotificationListener" />

    <spring:bean id="MyBean" name="MyBean"
        class="MyBean">
    </spring:bean>
</spring:beans>
<!-- <file:connector name="input" autoDelete="true" doc:name="File" />-->
<file:connector name="inputFileConnector" autoDelete="true" doc:name="File" >
    <service-overrides messageReceiver="myFileMessageReceiver"/>
</file:connector>
<flow name="UnpackHandler" doc:name="UnpackHandler">
    ...
</flow>
<flow name="XmlToCsvTransformHandler" doc:name="XmlToCsvTransformHandler">
    ...
</flow>

在 Tomcat 中一切正常。但是在那之后我提交了对 SVN 的更改,检查了所有内容,打包没有更改并在 Tomcat 中部署应用程序我的应用程序不工作!

我的应用程序的 Tomcat 日志中的最新文本:

DEBUG 18.12.2014 15:12:08 997 - DisposableBeanAdapter.invokeCustomDestroyMethod - Invoking destroy method 'dispose' on bean with name '_muleSystemModel'
INFO 18.12.2014 15:12:08 997 - ModelLifecycleManager.fireDisposePhase - Disposing model: _muleSystemModel

并且没有任何关于错误的日志... 当应用程序工作正常时,在这行之后我看到

DEBUG 18.12.2014 10:59:53 765 - MuleXmlBuilderContextListener.initialize - Mule config file(s): WEB-INF/classes/mainflow.xml

如果我有这个错误并从 mainflow.xml 中删除 mx4jnotifications 的部分,一切都会再次运行:

<?xml version="1.0" encoding="UTF-8"?><mule xmlns="http://www.mulesoft.org/schema/mule/core" mlns:vm="http://www.mulesoft.org/schema/mule/vm" xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:core="http://www.mulesoft.org/schema/mule/core" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="CE-3.3.0" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/vm http://www.mulesoft.org/schema/mule/vm/current/mule-vm.xsd http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd ">
</spring:beans>
<file:connector name="input" autoDelete="true" doc:name="File" />
<flow name="UnpackHandler" doc:name="UnpackHandler">
    ...
</flow>
<flow name="XmlToCsvTransformHandler" doc:name="XmlToCsvTransformHandler">
    ...
</flow>

在我一步步编写了mx4jnotifications部分之后,不要粘贴我从SVN获取的文件的所有文本,它又可以工作了!因此,当应用程序工作和不工作时,mainflow.xml 之间没有区别。

此行为在 Linux 服务器中。在 Windows 服务器和我的本地计算机中,一切正常。我想过斜线之间的区别,但我不写斜线...

为什么应用程序的行为如此奇怪?

最佳答案

根据您提供的信息,我只能猜测您在通知中有一些逻辑可以挂起它们,如果它们所依赖的东西尚未以某种方式初始化的话。

后来它确实起作用的事实在某种程度上表明了这一点。我可以建议您在 bean 中使用该属性所依赖的属性,以确保它在您的 bean 依赖项之后被初始化,以防万一。

关于linux - 为什么 Mule 应用程序在 Linux 服务器中表现异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27547571/

相关文章:

c - bash 无法使用 setuid 程序获得 root 权限

Python - 排列和百分比

linux - 如何将 C 代码链接到 BoringSSL?

用于将文件发送到 https Web 服务的所有信任的 java 类

http - 如何只允许一组特定的 IP 地址访问我的 Mule 流?

c++ - 使用 CMake 为 CUDA 构建多配置/多平台

tomcat - 将 tomcat 上的 war 部署到另一个文件夹名称

java - Fuseki 服务器不显示数据集

java - Tomcat 中的 REST API 客户端返回 ConnectionTimedOut

Windows 7 和 Solaris (Mule 3.3) 之间的 Java 信任库差异