I have a project that generates a
jar
let's call itprojectA.jar
. When this project runs, it is able to wire all its dependenciesWe are creating a new project (wrapper) which have maven dependency on
projectA.jar
As a first step, we are trying to call the same class as
projectA
was calling. When I do that I see error as
05 Jun 2015 18:32:44,430 [DEBUG] [EnterpriseConnector-akka.actor.default-dispatcher-5] org.springframework.beans.factory.xml.BeanDefinitionParserDelegate| No XML 'id' specified - using 'RESTcloudRegistryLoader' as bean name and [] as aliases 05 Jun 2015 18:32:44,430 [DEBUG] [EnterpriseConnector-akka.actor.default-dispatcher-5] org.springframework.beans.factory.xml.BeanDefinitionParserDelegate| No XML 'id' specified - using 'remoteResourceManager' as bean name and [] as aliases 05 Jun 2015 18:32:44,449 [DEBUG] [EnterpriseConnector-akka.actor.default-dispatcher-5] org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver| Loaded NamespaceHandler mappings: {http://www.springframework.org/schema/p=org.springframework.beans.factory.xml.SimplePropertyNamespaceHandler, http://www.springframework.org/schema/c=org.springframework.beans.factory.xml.SimpleConstructorNamespaceHandler, http://www.springframework.org/schema/util=org.springframework.beans.factory.xml.UtilNamespaceHandler}
05 Jun 2015 18:32:44,450 [INFO ] [EnterpriseConnector-akka.actor.default-dispatcher-5] com.shn.logs.common.OSUtils| Current Process ID 22924 Operating System: Mac OS X 10.10.3 [ERROR] [06/05/2015 18:32:44.450] [EnterpriseConnector-akka.actor.default-dispatcher-5] [akka://EnterpriseConnector/user/logProcessorSupervisor/logprocessor] Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/task] Offending resource: class path resource [context.xml]
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:70) at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85) at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:316) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1424) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1417) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:174) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:144) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:100) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:510) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:392) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:252) at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127) at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93) at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129) at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:452) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93) at com.shn.logs.controller.LogReaderDisruptor.createAppContext(LogReaderDisruptor.java:148)
I looked what Loaded Schema mapping
is loading and realized that infact http://www.springframework.org/schema/task
is not loaded.
However, in my context.xml
, I see it
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans org/springframework/schema/spring-beans-2.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
http://www.springframework.org/schema/context org/springframework/schema/spring-context-3.2.xsd
http://www.springframework.org/schema/jdbc org/springframework/schema/spring-jdbc-3.0.xsd
http://www.springframework.org/schema/task org/springframework/schema/spring-task-3.2.xsd
/springframework/schema/spring-cache.xsd"
default-lazy-init="false" default-autowire="no"
default-dependency-check="none">
Also, I tried looking into the jar if spring-task
is loaded and I see it in there
jar -tvf main-1.0-SNAPSHOT-jar-with-dependencies.jar | grep spring-task
12199 Mon Jun 01 13:41:22 PDT 2015 org/springframework/schema/spring-task-3.2.xsd
10764 Fri Feb 20 02:46:26 PST 2015 org/springframework/scheduling/config/spring-task-3.0.xsd
12825 Fri Feb 20 02:46:26 PST 2015 org/springframework/scheduling/config/spring-task-4.1.xsd
541 Fri Feb 20 02:46:26 PST 2015 org/springframework/scheduling/config/spring-task.gif
11991 Fri Feb 20 02:46:26 PST 2015 org/springframework/scheduling/config/spring-task-3.1.xsd
12286 Fri Feb 20 02:46:26 PST 2015 org/springframework/scheduling/config/spring-task-4.0.xsd
12286 Fri Feb 20 02:46:26 PST 2015 org/springframework/scheduling/config/spring-task-3.2.xsd
I thought it could be maven-shade-plugin
issue as described here, but my plugin already includes them
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<finalName>original-${project.artifactId}</finalName>
<!-- <shadedClassifierName></shadedClassifierName> -->
<filters>
<filter>
<artifact>org.apache.tomcat.embed:*</artifact>
<excludes>
<exclude>**/JSSESocketFactory*</exclude>
<exclude>**/AbstractEndpoint*</exclude>
</excludes>
</filter>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
<exclude>log4j.xml</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.shn.logs.controller.MainClass
</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
What is that I am missing?