sample spring mvc app not working in virgo [message #777017] |
Mon, 09 January 2012 11:56  |
Eclipse User |
|
|
|
Hi Friends,
I have created sample web app using STS 2.8. No code change once the app is created. Only thing i changed is pom to use 3.0.5 version spring. Then deploy the war file to pickup directory and getting an exception
"
Start failed for bundle 'abc' version '0.0.0'. org.eclipse.virgo.kernel.deployer.core.DeploymentException: Web application failed to start
"
Looking back in to the log file , it is complaining about
"
[2012-01-09 11:49:25.453] ERROR Thread-35 o.a.catalina.core.ContainerBase.[Catalina].[localhost].[/abc] Error configuring application listener of class org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
"
Same app workig in tomcat 7.
File attachment is not allowing me to attach sample was generated, saying file is too big
|
|
|
|
|
|
|
|
|
Re: sample spring mvc app not working in virgo [message #820229 is a reply to message #820158] |
Tue, 13 March 2012 17:59   |
Eclipse User |
|
|
|
Thanks, must have forgotten to switch that thing on.. But that got me up and running to the next exception..
Now during loading of the following class org.apache.commons.logging.impl.SLF4JLogFactory (I guess):
....
[2012-03-13 22:14:26.988] DEBUG Thread-37 org.eclipse.virgo.kernel.serviceability.Assert < public static transient void org.eclipse.virgo.kernel.serviceability.Assert.isNull(java.lang.Object, java.lang.String, java.lang.Object[])
[2012-03-13 22:14:27.005] DEBUG Thread-37 o.a.c.c.C.[Catalina].[localhost].[/com.irisnext-7.3.44] Sending application start events
[2012-03-13 22:14:27.008] DEBUG Thread-37 o.e.gemini.web.tomcat.internal.support.EquinoxBundleFileResolver Resolved bundle 'com.irisnext-7.3.44' to file '/Users/dias/Software/virgo-tomcat-server-3.0.2.RELEASE/work/org.eclipse.virgo.kernel.deployer_3.0.2.RELEASE/staging/global/bundle/com.irisnext-7.3.44/0.0.0/com.irisnext-7.3.44.war'
[2012-03-13 22:14:27.008] INFO Thread-37 o.a.c.c.C.[Catalina].[localhost].[/com.irisnext-7.3.44] Set web app root system property: 'webapp.root' = [/Users/dias/Software/virgo-tomcat-server-3.0.2.RELEASE/work/org.eclipse.virgo.kernel.deployer_3.0.2.RELEASE/staging/global/bundle/com.irisnext-7.3.44/0.0.0/com.irisnext-7.3.44.war/]
[2012-03-13 22:14:27.012] DEBUG Thread-37 org.eclipse.virgo.kernel.serviceability.Assert > public static transient void org.eclipse.virgo.kernel.serviceability.Assert.notNull(java.lang.Object, java.lang.String, java.lang.Object[])
[2012-03-13 22:14:27.012] DEBUG Thread-37 org.eclipse.virgo.kernel.serviceability.Assert < public static transient void org.eclipse.virgo.kernel.serviceability.Assert.notNull(java.lang.Object, java.lang.String, java.lang.Object[])
[2012-03-13 22:14:27.019] DEBUG Thread-37 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader getResources(commons-logging.properties)
[2012-03-13 22:14:27.030] DEBUG Thread-37 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader getResource(META-INF/services/org.apache.commons.logging.LogFactory)
[2012-03-13 22:14:27.038] DEBUG Thread-37 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader loadClass(org.apache.commons.logging.impl.SLF4JLogFactory, false)
[2012-03-13 22:14:27.038] DEBUG Thread-37 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader Searching the application's bundle
[2012-03-13 22:14:27.039] DEBUG Thread-37 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader Loading class from the delegating classloader
[2012-03-13 22:14:27.046] DEBUG Thread-37 org.eclipse.virgo.kernel.serviceability.Assert > public static transient void org.eclipse.virgo.kernel.serviceability.Assert.notNull(java.lang.Object, java.lang.String, java.lang.Object[])
That goes on for a while... and 36 milliseconds later...
[2012-03-13 22:14:27.082] DEBUG Thread-37 org.eclipse.virgo.kernel.serviceability.Assert < public static transient void org.eclipse.virgo.kernel.serviceability.Assert.isNull(java.lang.Object, java.lang.String, java.lang.Object[])
org.eclipse.virgo.kernel.serviceability.Assert$FatalAssertionException: input packageImports must not contain duplicate items
at org.eclipse.virgo.kernel.serviceability.Assert.isNull(Assert.java:103)
at org.eclipse.virgo.kernel.userregion.internal.importexpansion.AbstractTrackedPackageImports.convertImportedPackageListToMap(AbstractTrackedPackageImports.java:323)
at org.eclipse.virgo.kernel.userregion.internal.importexpansion.BundleTrackedPackageImports.getInitialImportedPackages(BundleTrackedPackageImports.java:58)
at org.eclipse.virgo.kernel.userregion.internal.importexpansion.BundleTrackedPackageImports.<init>(BundleTrackedPackageImports.java:43)
at org.eclipse.virgo.kernel.userregion.internal.importexpansion.StandardTrackedPackageImportsFactory.create(StandardTrackedPackageImportsFactory.java:37)
at org.eclipse.virgo.kernel.userregion.internal.importexpansion.ImportExpansionHandler.mergeImports(ImportExpansionHandler.java:160)
at org.eclipse.virgo.kernel.userregion.internal.importexpansion.ImportExpansionHandler.mergePromotedImports(ImportExpansionHandler.java:151)
at org.eclipse.virgo.kernel.userregion.internal.importexpansion.ImportExpansionHandler.mergePromotedImports(ImportExpansionHandler.java:144)
at org.eclipse.virgo.kernel.userregion.internal.importexpansion.ImportExpansionHandler.expandImports(ImportExpansionHandler.java:121)
at org.eclipse.virgo.kernel.userregion.internal.equinox.TransformedManifestProvidingBundleFileWrapper$TransformedManifestProvidingBundleFile.getEntry(TransformedManifestProvidingBundleFileWrapper.java:160)
at org.eclipse.osgi.baseadaptor.bundlefile.BundleFileWrapperChain.getEntry(BundleFileWrapperChain.java:43)
at org.eclipse.core.runtime.internal.adaptor.ClasspathManifest.getManifest(ClasspathManifest.java:49)
at org.eclipse.core.runtime.internal.adaptor.EclipseClassLoadingHook.processClass(EclipseClassLoadingHook.java:88)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:596)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:567)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:490)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:478)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at org.eclipse.virgo.kernel.userregion.internal.equinox.KernelBundleClassLoader.loadClass(KernelBundleClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:121)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:268)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:241)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:156)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
at org.springframework.util.PropertyPlaceholderHelper.<clinit>(PropertyPlaceholderHelper.java:40)
at org.springframework.util.SystemPropertyUtils.<clinit>(SystemPropertyUtils.java:49)
at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:129)
at org.springframework.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
input packageImports must not contain duplicate items
I checked the virgo code and unfortunately there seems to be no option to deactivate these assertions... So one of my dependencies is having an erroneous manifest file...
Guess I will have to go throught the slf4j dependencies where it stucks. Maybe I could simply strip OSGI headers from their manifest?
[Updated on: Tue, 13 March 2012 18:01] by Moderator
|
|
|
Re: sample spring mvc app not working in virgo [message #902110 is a reply to message #820229] |
Wed, 15 August 2012 17:52  |
Eclipse User |
|
|
|
It actually seems like there is a bug in the AbstractTrackedPackageImports.java:convertImportedPackageListToMap() method.
protected static Map<String, ImportedPackage> convertImportedPackageListToMap(List<ImportedPackage> importedPackages) {
Map<String, ImportedPackage> initialPackageImports = new HashMap<String, ImportedPackage>();
for (ImportedPackage importedPackage : importedPackages) {
Assert.isNull(initialPackageImports.put(importedPackage.getPackageName(), importedPackage),
"input packageImports must not contain duplicate items");
}
return initialPackageImports;
}
The way it is coded above, the exception will always be thown if the importedPackages list argument is not empty.
Since the initialPackageImports variable is being initialized to an empty HashMap, the subsequent 'put' operation will always return 'null' upon insertion because the map is empty and there is no previous key!
It seems like the check should be the other way around, if we indeed check for duplicates. If the returned value from 'put' is "NOT NULL", then we know there was already a package under that name imported.
|
|
|
Powered by
FUDForum. Page generated in 0.05643 seconds