掲示板

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

thumbnail
9年前 に irvan ahadi によって更新されました。

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

New Member 投稿: 18 参加年月日: 14/04/24 最新の投稿
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
9年前 に Neil Griffin によって更新されました。

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

Liferay Legend 投稿: 2655 参加年月日: 05/07/27 最新の投稿
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
9年前 に irvan ahadi によって更新されました。

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

New Member 投稿: 18 参加年月日: 14/04/24 最新の投稿
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
9年前 に Neil Griffin によって更新されました。

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

Liferay Legend 投稿: 2655 参加年月日: 05/07/27 最新の投稿
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