0
  • I have a project that generates a jar let's call it projectA.jar. When this project runs, it is able to wire all its dependencies

  • We 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?

Community
  • 1
  • 1
daydreamer
  • 87,243
  • 191
  • 450
  • 722

1 Answers1

0

replace org/springframework/schema/spring-task-3.2.xsd with http://www.springframework.org/schema/task/spring-task-4.3.xsd