Reputation: 167
I have a small problem but cannot find an answer anywhere - when deploying mule app (war) into tomcat with mule jars I see this message:
SEVERE: Exception sending context initialized event to listener instance of class org.mule.config.builders.MuleXmlBuilderContextListener
java.lang.ClassCastException: Notification class must be of type: org.mule.api.context.notification.ServerNotification. Offending class is: org.mule.context.notification.MuleContextNotification
at org.mule.lifecycle.NotificationLifecycleObject.(NotificationLifecycleObject.java:49)
at org.mule.lifecycle.phases.MuleContextStopPhase.(MuleContextStopPhase.java:66)
at org.mule.lifecycle.phases.MuleContextStopPhase.(MuleContextStopPhase.java:56)
at org.mule.lifecycle.RegistryBrokerLifecycleManager.registerPhases(RegistryBrokerLifecycleManager.java:43)
at org.mule.lifecycle.RegistryLifecycleManager.(RegistryLifecycleManager.java:57)
at org.mule.lifecycle.RegistryBrokerLifecycleManager.(RegistryBrokerLifecycleManager.java:33)
at org.mule.registry.AbstractRegistryBroker.(AbstractRegistryBroker.java:37)
at org.mule.registry.DefaultRegistryBroker.(DefaultRegistryBroker.java:27)
at org.mule.DefaultMuleContext.createRegistryBroker(DefaultMuleContext.java:176)
at org.mule.DefaultMuleContext.(DefaultMuleContext.java:167)
at org.mule.context.DefaultMuleContextBuilder.buildMuleContext(DefaultMuleContextBuilder.java:97)
at org.mule.context.DefaultMuleContextFactory.buildMuleContext(DefaultMuleContextFactory.java:215)
at org.mule.context.DefaultMuleContextFactory.doCreateMuleContext(DefaultMuleContextFactory.java:201)
at org.mule.context.DefaultMuleContextFactory.createMuleContext(DefaultMuleContextFactory.java:100)
at org.mule.config.builders.MuleXmlBuilderContextListener.createMuleContext(MuleXmlBuilderContextListener.java:169)
at org.mule.config.builders.MuleXmlBuilderContextListener.initialize(MuleXmlBuilderContextListener.java:98)
at org.mule.config.builders.MuleXmlBuilderContextListener.contextInitialized(MuleXmlBuilderContextListener.java:74)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:962)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1603)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
2013-08-11 23:11:43 org.apache.catalina.core.ApplicationContext log
This sucks because org.mule.context.notification.MuleContextNotification is extending the org.mule.api.context.notification.ServerNotification. What am I missing here?
my web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<context-param>
<param-name>org.mule.config</param-name>
<param-value>mule-config.xml</param-value>
</context-param>
<listener>
<listener-class>org.mule.config.builders.MuleXmlBuilderContextListener</listener-class>
</listener>
<servlet>
<servlet-name>muleServlet</servlet-name>
<servlet-class>org.mule.transport.servlet.MuleReceiverServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>muleServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
Upvotes: 1
Views: 2028
Reputation: 167
OK I found the solution:
1 - First of all it is good to have in the WEB-INF\classes logging.properties file:
org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler
This way all proper errors will be displayed on console, most likely there will be and ClassNotFoundException.
2 - Import needed lib into your app via maven dependency (for me I had to use the provided scope because jar was already in tomcat lib directory) - in my case it was mule-module-tomcat-3.4.0.jar
In the end my pom.xml for the project looked like that:
...
<properties>
<spring.version>3.2.3.RELEASE</spring.version>
<mule.version>3.4.0</mule.version>
</properties>
<dependencies>
<dependency>
<groupId>org.mule</groupId>
<artifactId>mule-core</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-spring-config</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-tomcat</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
Problem solved :D
Upvotes: 1