Foros de discusión

Java lang NoSuchMethodError spring and org.apache.xerces.jaxp.SAXParserImpl

thumbnail
irvan ahadi, modificado hace 9 años.

Java lang NoSuchMethodError spring and org.apache.xerces.jaxp.SAXParserImpl

New Member Mensajes: 18 Fecha de incorporación: 24/04/14 Mensajes recientes
Hello,
Now, i am creating new JSF(primefaces) portlet using maven and integrated with spring (spring 3.0.0).
Actually, in this new project i need my old spring project (use spring 2.0.8) as a dependency. Since this project has 2 different spring, i use <exclusion/> in my pom.xml. There are 2 problems come when i deployed my portlet into my tomcat liferay, first is this error message :

07:10:44,896 ERROR [localhost-startStop-6][HotDeployImpl:211] com.liferay.portal.kernel.deploy.hot.HotDeployException: Error registering servlet context listeners for test-1.0.0-SNAPSHOTtest-1.0.0-SNAPSHOT
com.liferay.portal.kernel.deploy.hot.HotDeployException: Error registering servlet context listeners for test-1.0.0-SNAPSHOTtest-1.0.0-SNAPSHOT
	at com.liferay.portal.kernel.deploy.hot.BaseHotDeployListener.throwHotDeployException(BaseHotDeployListener.java:46)
	at com.liferay.portal.deploy.hot.ServletContextListenerHotDeployListener.invokeDeploy(ServletContextListenerHotDeployListener.java:40)
	at com.liferay.portal.deploy.hot.HotDeployImpl.doFireDeployEvent(HotDeployImpl.java:208)
	at com.liferay.portal.deploy.hot.HotDeployImpl.fireDeployEvent(HotDeployImpl.java:95)
	at com.liferay.portal.kernel.deploy.hot.HotDeployUtil.fireDeployEvent(HotDeployUtil.java:27)
	at com.liferay.portal.kernel.servlet.PluginContextListener.fireDeployEvent(PluginContextListener.java:164)
	at com.liferay.portal.kernel.servlet.PluginContextListener.doPortalInit(PluginContextListener.java:154)
	at com.liferay.portal.kernel.util.BasePortalLifecycle.portalInit(BasePortalLifecycle.java:44)
	at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:64)
	at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:56)
	at com.liferay.portal.kernel.util.BasePortalLifecycle.registerPortalLifecycle(BasePortalLifecycle.java:54)
	at com.liferay.portal.kernel.servlet.PluginContextListener.contextInitialized(PluginContextListener.java:116)
	at com.liferay.portal.kernel.servlet.SecurePluginContextListener.contextInitialized(SecurePluginContextListener.java:151)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1113)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1671)
	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)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.liferay.portal.deploy.hot.ServletContextListenerHotDeployListener.doInvokeDeploy(ServletContextListenerHotDeployListener.java:77)
	at com.liferay.portal.deploy.hot.ServletContextListenerHotDeployListener.invokeDeploy(ServletContextListenerHotDeployListener.java:37)
	... 25 more
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.lang.NoSuchMethodError: org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.getBeanDefinitionDefaults()Lorg/springframework/beans/factory/support/BeanDefinitionDefaults;
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:385)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:313)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:290)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:131)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:147)
	at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)
	at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:92)
	at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:101)
	at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:394)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:324)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:189)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
	at com.liferay.portal.kernel.servlet.SecurePluginContextListener.instantiatingListener(SecurePluginContextListener.java:360)
	at com.liferay.portal.kernel.servlet.SecurePluginContextListener.instantiatingListeners(SecurePluginContextListener.java:163)
	... 31 more
Caused by: java.lang.NoSuchMethodError: org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.getBeanDefinitionDefaults()Lorg/springframework/beans/factory/support/BeanDefinitionDefaults;
	at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.configureScanner(ComponentScanBeanDefinitionParser.java:101)
	at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:83)
	at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:69)
	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1123)
	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1113)
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:133)
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:90)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:468)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:363)


second problem is this
[2014-06-12 08:00:50,452] ERROR com.liferay.faces.bridge.config.BridgeConfigImpl This SAXParser, "org.apache.xerces.jaxp.SAXParserImpl", does not support the reset functionality.  Specification "null" version "null" 
java.lang.UnsupportedOperationException: This SAXParser, "org.apache.xerces.jaxp.SAXParserImpl", does not support the reset functionality.  Specification "null" version "null"
	at javax.xml.parsers.SAXParser.reset(SAXParser.java:112)
	at com.liferay.faces.bridge.config.BridgeConfigImpl.<init>(BridgeConfigImpl.java:249)
	at com.liferay.faces.bridge.config.BridgeConfigFactoryImpl.<init>(BridgeConfigFactoryImpl.java:29)
	at com.liferay.faces.bridge.BridgeFactoryFinderImpl.init(BridgeFactoryFinderImpl.java:55)
	at com.liferay.faces.bridge.BridgeFactoryFinder.getInstance(BridgeFactoryFinder.java:97)
	at com.liferay.faces.bridge.BridgeFactoryFinder.getFactory(BridgeFactoryFinder.java:73)
	at com.liferay.faces.bridge.BridgeImpl.init(BridgeImpl.java:154)
	at javax.portlet.faces.GenericFacesPortlet.init(GenericFacesPortlet.java:92)
	at com.liferay.portlet.InvokerPortletImpl.init(InvokerPortletImpl.java:269)
	at com.liferay.portlet.PortletInstanceFactoryImpl.init(PortletInstanceFactoryImpl.java:228)
	at com.liferay.portlet.PortletInstanceFactoryImpl.create(PortletInstanceFactoryImpl.java:145)
	at com.liferay.portlet.PortletInstanceFactoryUtil.create(PortletInstanceFactoryUtil.java:41)
	at com.liferay.portlet.PortletBagFactory.create(PortletBagFactory.java:337)
	at com.liferay.portal.deploy.hot.PortletHotDeployListener.doInvokeDeploy(PortletHotDeployListener.java:369)
	at com.liferay.portal.deploy.hot.PortletHotDeployListener.invokeDeploy(PortletHotDeployListener.java:124)
	at com.liferay.portal.deploy.hot.HotDeployImpl.doFireDeployEvent(HotDeployImpl.java:208)
	at com.liferay.portal.deploy.hot.HotDeployImpl.fireDeployEvent(HotDeployImpl.java:95)
	at com.liferay.portal.kernel.deploy.hot.HotDeployUtil.fireDeployEvent(HotDeployUtil.java:27)
	at com.liferay.portal.kernel.servlet.PluginContextListener.fireDeployEvent(PluginContextListener.java:164)
	at com.liferay.portal.kernel.servlet.PluginContextListener.doPortalInit(PluginContextListener.java:154)
	at com.liferay.portal.kernel.util.BasePortalLifecycle.portalInit(BasePortalLifecycle.java:44)
	at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:64)
	at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:56)
	at com.liferay.portal.kernel.util.BasePortalLifecycle.registerPortalLifecycle(BasePortalLifecycle.java:54)
	at com.liferay.portal.kernel.servlet.PluginContextListener.contextInitialized(PluginContextListener.java:116)
	at com.liferay.portal.kernel.servlet.SecurePluginContextListener.contextInitialized(SecurePluginContextListener.java:151)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1113)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1671)
	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)
</init></init>

For more information, this is my pom.xml
<!--?xml version="1.0"?-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelversion>4.0.0</modelversion>
	<groupid>com.example.plugins</groupid>
	<artifactid>test</artifactid>
	<packaging>war</packaging>
	<name>test Portlet</name>
	<version>1.0.0-SNAPSHOT</version>
	<build>
		<plugins>
			<plugin>
				<groupid>com.liferay.maven.plugins</groupid>
				<artifactid>liferay-maven-plugin</artifactid>
				<version>6.2.0-RC5</version>
				<executions>
					<execution>
						<phase>generate-sources</phase>
						<goals>
							<goal>build-css</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<autodeploydir>${liferay.auto.deploy.dir}</autodeploydir>
					<appserverdeploydir>${liferay.app.server.deploy.dir}</appserverdeploydir>
					<appserverlibglobaldir>${liferay.app.server.lib.global.dir}</appserverlibglobaldir>
					<appserverportaldir>${liferay.app.server.portal.dir}</appserverportaldir>
					<liferayversion>${liferay.version}</liferayversion>
					<plugintype>portlet</plugintype>
				</configuration>
			</plugin>
			<plugin>
				<artifactid>maven-compiler-plugin</artifactid>
				<version>2.5</version>
				<configuration>
					<encoding>UTF-8</encoding>
					<source>1.6
					<target>1.6</target>
				</configuration>
			</plugin>
			<plugin>
				<artifactid>maven-resources-plugin</artifactid>
				<version>2.5</version>
				<configuration>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<dependencies>
		<dependency>
			<groupid>commons-fileupload</groupid>
			<artifactid>commons-fileupload</artifactid>
			<version>1.2.2</version>
		</dependency>
		<dependency>
			<groupid>commons-io</groupid>
			<artifactid>commons-io</artifactid>
			<version>1.3.2</version>
		</dependency>
		<dependency>
			<groupid>com.liferay.faces</groupid>
			<artifactid>liferay-faces-bridge-impl</artifactid>
			<version>3.2.4-ga5</version>
		</dependency>
		<dependency>
			<groupid>com.liferay.faces</groupid>
			<artifactid>liferay-faces-portal</artifactid>
			<version>3.2.4-ga5</version>
		</dependency>
		<dependency>
			<groupid>com.liferay.portal</groupid>
			<artifactid>portal-service</artifactid>
			<version>6.2.0-RC5</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupid>com.liferay.portal</groupid>
			<artifactid>util-java</artifactid>
			<version>6.2.0-RC5</version>
			<scope>provided</scope>
		</dependency>
		
		<!-- JSF 2.1 -->
		<dependency>
			<groupid>com.sun.faces</groupid>
			<artifactid>jsf-api</artifactid>
			<version>2.1.21</version>
		</dependency>
		<dependency>
			<groupid>com.sun.faces</groupid>
			<artifactid>jsf-impl</artifactid>
			<version>2.1.21</version>
		</dependency>
		<dependency>
			<groupid>javax.el</groupid>
			<artifactid>el-api</artifactid>
			<version>1.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupid>javax.portlet</groupid>
			<artifactid>portlet-api</artifactid>
			<version>2.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupid>org.jboss.seam</groupid>
			<artifactid>jboss-el</artifactid>
			<version>2.0.0.GA</version>
			<exclusions>
				<exclusion>
					<artifactid>el-api</artifactid>
					<groupid>javax.el</groupid>
				</exclusion>
			</exclusions>
		</dependency>
		
		<!-- Primefaces 3.5-->
		<dependency>
			<groupid>org.primefaces</groupid>
			<artifactid>primefaces</artifactid>
			<version>3.5</version>
		</dependency>
		
		<!-- Spring Framework -->
		<dependency>
			<groupid>org.springframework</groupid>
			<artifactid>spring-web</artifactid>
			<version>3.0.0.RELEASE</version>
		</dependency>
		
		<!-- IBE API-->
	<dependency>
		<groupid>id.co.lhsystems.ibe</groupid>
		<artifactid>ibe-api</artifactid>
		<version>1.3.Alpha1-SNAPSHOT</version>
		<exclusions>
			<exclusion>
				<groupid>org.springframework</groupid>
				<artifactid>spring</artifactid>
			</exclusion>
		</exclusions>
	</dependency>

	<dependency>
		<groupid>xerces</groupid>
		<artifactid>xercesImpl</artifactid>
		<version>2.11.0</version>
	</dependency>
		

	</dependencies>
	<repositories>
		<repository>
			<id>maven2-repository.dev.java.net</id>
			<name>Java.net Repository for Maven</name>
			<url>http://download.java.net/maven/2/</url>
		</repository>
		<repository>
			<id>maven2-repository.jboss.org</id>
			<name>JBoss Maven Repository</name>
			<url>http://repository.jboss.org/nexus/content/groups/public-jboss</url>
		</repository>
		<repository>
			<id>maven2-repository.primefaces.org</id>
			<name>PrimeFaces Maven Repository</name>
			<url>http://repository.primefaces.org</url>
		</repository>
            <repository>
                <id>mvnrepository</id>
                <name>mvnrepository</name>
                <url>http://www.mvnrepository.com</url>
            </repository>
            <repository>
                <id>liferayrepo</id>
                <name>liferayrepo</name>
                <url>https://repository.liferay.com/nexus/content/groups/liferay-ce/</url>
            </repository>
	</repositories>
	<properties>
	    <plugin.type>portlet</plugin.type>
				<liferay.version>6.2.0</liferay.version>
				<liferay.maven.plugin.version>6.2.0-RC5</liferay.maven.plugin.version>
				<liferay.auto.deploy.dir>C:\Irvan Ahadi\data\Portal\Liferay\liferay-portal-6.2-ce-ga2\deploy</liferay.auto.deploy.dir>
				<liferay.app.server.deploy.dir>C:\Irvan Ahadi\data\Portal\Liferay\liferay-portal-6.2-ce-ga2\tomcat-7.0.42\webapps</liferay.app.server.deploy.dir>
				<liferay.app.server.lib.global.dir>C:\Irvan Ahadi\data\Portal\Liferay\liferay-portal-6.2-ce-ga2\tomcat-7.0.42\lib\ext</liferay.app.server.lib.global.dir>
				<liferay.app.server.portal.dir>C:\Irvan Ahadi\data\Portal\Liferay\liferay-portal-6.2-ce-ga2\tomcat-7.0.42\webapps\ROOT</liferay.app.server.portal.dir>
	</properties>
</project>


This is my faces-config.xml
<!--?xml version="1.0"?-->
	<faces-config version="2.1" 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-facesconfig_2_1.xsd">

	<lifecycle>
		<phase-listener>com.liferay.faces.util.lifecycle.DebugPhaseListener</phase-listener>
	</lifecycle>

	<application>
		<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
	</application>
	<managed-bean>
		<managed-bean-name>jsfController</managed-bean-name>
		<managed-bean-class>com.test.controller.JsfController</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
		<managed-property>
			<property-name>airportApi</property-name>
			<value>#{airportApi}</value>
		</managed-property>
	</managed-bean>

	<!-- Navigation Rule -->
	<navigation-rule>
		<from-view-id>/views/view.xhtml</from-view-id>
		<navigation-case>
			<from-outcome>success</from-outcome>
			<to-view-id>/views/selectForm.xhtml</to-view-id>
		</navigation-case>
	</navigation-rule>
</faces-config>


This is my applicationContext & web.xml.

1st problem :From this link, i've read and realize that was 2 different spring in my pom.xml, so i clear it out using <exclusions/>. But it still happen emoticon
2nd problem:I've read this link, and it suggest to add xerces-impl into my lib, i try, and still no changed emoticon

Really appreciate your help guys because it's really important for me emoticon thanks

* I use liferay 6.2 CE (tomcat)
* I dont know why appContext & web.xml can paste here but not as valid message so i just capture its image and linked it. For faces-config.xml, i also change some tag symbol (like ":" -> ";") because it's make invalid message.
thumbnail
Neil Griffin, modificado hace 9 años.

RE: Java lang NoSuchMethodError spring and org.apache.xerces.jaxp.SAXParser

Liferay Legend Mensajes: 2655 Fecha de incorporación: 27/07/05 Mensajes recientes
Hi Irvan,

Are you using plain Tomcat? If so, are you using the Liferay 6.2 + Tomcat 7 bundle?

Also, when you get a chance, please provide us with a list all of the files that you see in your tomcat/webapps/test/WEB-INF/lib folder.

Kind Regards,

Neil
thumbnail
irvan ahadi, modificado hace 9 años.

RE: Java lang NoSuchMethodError spring and org.apache.xerces.jaxp.SAXParser

New Member Mensajes: 18 Fecha de incorporación: 24/04/14 Mensajes recientes
Hello Neil,
Yep, i use liferay 6.2 ce with tomcat 7. This is my jar files list in tomcat-7.0.42/webapps/test/WEB-INF/lib folder link1, link2. This is my jar list in source of test project.
I just wondering, why this two folder has different jars and why tomcat-7.0.42/webapps/test/WEB-INF/lib still contain spring-2.0.8.jar? Did I miss some step when deploying this project?

Edit: Great! After i remove test folder in tomcat\webapps then redeploy test project, it works! Thanks Neil! *But still wondering those things emoticon
thumbnail
Neil Griffin, modificado hace 9 años.

RE: Java lang NoSuchMethodError spring and org.apache.xerces.jaxp.SAXParser

Liferay Legend Mensajes: 2655 Fecha de incorporación: 27/07/05 Mensajes recientes
Hi Irvan,

I'm glad it is working for you now emoticon

The multiple copies of jars (like the two versions of the spring jars) can occur when you re-deploy a WAR. For example:

1. Start with new/clean Tomcat
2. Deploy test.war (contains Spring 2.x jars)
3. Re-deploy test-.war (contains Spring 3.x jars)

In order to avoid this problem, I normally remove the deployed folder under tomcat/webapps before re-deploying a WAR.

Kind Regards,

Neil