Support du VFS 2 de JBoss 5 dans Spring 4

logo-spring-frameworkCe billet solutionne un problème rencontré lors de la montée de version du famework Spring  de la version 3.2 à la version 4.0. En effet, le déploiement d’une application sous JBoss 5.1 EAP échouait dès l’initialisation du contexte Spring. Plus précisément, une exception était levée lorsque Spring scanne le classpath à la recherche de beans Spring annotés par les annotations  @Repository, @Service, @Controller …
Comme le montre la pile d’appel complète ci-dessous, l’exception java.lang.ClassNotFoundException: org.jboss.vfs.VFS est encapsulée dans l’exception java.lang.IllegalStateException: Could not detect JBoss VFS infrastructure

Ce problème ne m’était initialement pas apparu lors des développements sous Eclipse avec le plugin JBoss Tools pour WTP : Spring n’a aucun mai à trouver les beans d’un WAR ou d’un EAR explosé. Cette erreur s’est manifestée  lors du déploiement manuel de l’EAR dans le répertoire deploy de JBoss puis du démarrage du serveur par la commande run.bat.

 Diagnostic

Les versions communautaires JBoss AS 5 et commerciales JBoss 5 EAP s’appuient toutes les deux sur la version 2 du Virtual File System.  Or, comme l’atteste le commit de Juergen Hoeller dans GitHub, le support de VFS 2 a été volontairement retiré de Spring 4.

Comme je m’y attendais, je ne suis pas le seul développeur à  regretter cet abandon. Le forum de Spring en donne une idée. Qui plus est, la documentation de Spring n’est pas tout à fait à jour à ce sujet. J’ai soumis la pull request concernant la JavaDoc de la classe VfsResource.

Réactivation de VFS2

Rétablir le support de VFS 2 dans Spring 4 n’a pas été très compliqué. J’ai tout simplement dupliqué le code de la classe VfsUtils de Spring 3.2 dans la classe Vfs2Utils. Il a ensuite été nécessaire d’implémenter l’interface ResourcePatternResolver et de câbler cette implémentation dans les classes responsables du chargement du contexte applicatif Spring (qui héritent de la classe AbstractApplicationContext).

Pour celles et ceux que cela intéresserait, j’ai publié ces quelques classes dans le projet spring4-vfs2-support sous GitHub. Les 2 classes JBoss5XmlWebApplicationContext et JBoss5AnnotationConfigWebApplicationContext en sont les points d’entrée.

Utilisation

Pour utiliser Spring 4 avec JBoss 5, vous pouvez copier/coller le code du repo spring4-vfs2-support ou bien tirer la dépendance maven suivante :

L’artefact javaetmoi-spring4-vfs2-support est publié sur un repository maven hébergé par CloudBees. Ce repo doit être référencé dans votre proxy Maven d’Entreprise (ex : Nexus) ou bien déclaré dans votre pom.xml au niveau de la balise <repositories> :

Une fois la configuration Maven terminée, il reste à indiquer à Spring quelle classe il doit utiliser pour charger sa configuration. Exemple de configuration du listener ContextLoaderListener dans le web.xml :

Conclusion

A l’exception de celles basées sur la spécification Servlet 3.0, vous pouvez souhaiter la bienvenues à toutes les nouveautés de Spring 4.

2 réflexions au sujet de « Support du VFS 2 de JBoss 5 dans Spring 4 »

  1. Hi, i’m trying to use your vfs2 patch for spring 4 but i have a constant exception:

     

    Caused by: java.lang.ExceptionInInitializerError
    at org.springframework.core.io.support.PathMatchingResourcePatternResolver$VfsResourceMatchingDelegate.findMatchingResources(PathMatchingResourcePatternResolver.java:721)
    at org.springframework.core.io.support.PathMatchingResourcePatternResolver.findPathMatchingResources(PathMatchingResourcePatternResolver.java:413)
    at org.springframework.core.io.support.PathMatchingResourcePatternResolver.getResources(PathMatchingResourcePatternResolver.java:273)
    at org.springframework.context.support.AbstractApplicationContext.getResources(AbstractApplicationContext.java:1159)
    at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:270)
    at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:248)
    at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:87)
    at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:74)
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1427)
    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)
    … 89 more
    Caused by: java.lang.IllegalStateException: Could not detect JBoss VFS infrastructure
    at org.springframework.core.io.VfsUtils.<clinit>(VfsUtils.java:94)
    … 104 more
    Caused by: java.lang.ClassNotFoundException: org.jboss.vfs.VFS from BaseClassLoader@11528488{VFSClassLoaderPolicy@407b059a{name=vfsfile:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/ domain=ClassLoaderDomain@584caa92{name=vfsfile:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/ parentPolicy=AFTER_BUT_JAVA_BEFORE parent=BaseClassLoader@66c2de47{vfsfile:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/}} roots=[DelegatingHandler@1286398600[path=sebina.ear/sebinaopac.war/WEB-INF/lib/ki-jzkit-hss.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/ki-jzkit-hss.jar], DelegatingHandler@1783395851[path=sebina.ear/sebinaopac.war/WEB-INF/lib/spring-aop-4.1.6.RELEASE.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/spring-aop-4.1.6.RELEASE.jar], DelegatingHandler@1104806578[path=sebina.ear/sebinaopac.war/WEB-INF/lib/velocity-1.6.4.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/velocity-1.6.4.jar], DelegatingHandler@1340544484[path=sebina.ear/sebinaopac.war/WEB-INF/lib/velocity-tools-2.0.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/velocity-tools-2.0.jar], DelegatingHandler@1280201911[path=sebina.ear/sebinaopac.war/WEB-INF/lib/ki-util.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/ki-util.jar], DelegatingHandler@714858884[path=sebina.ear/sebinaopac.war/WEB-INF/lib/oclc-srw-DM.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/oclc-srw-DM.jar], DelegatingHandler@1609742070[path=sebina.ear/sebinaopac.war/WEB-INF/lib/spring-context-4.1.6.RELEASE.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/spring-context-4.1.6.RELEASE.jar], DelegatingHandler@935985584[path=sebina.ear/sebinaopac.war/WEB-INF/lib/spring-webmvc-4.1.6.RELEASE.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/spring-webmvc-4.1.6.RELEASE.jar], DelegatingHandler@791996013[path=sebina.ear/sebinaopac.war/WEB-INF/lib/ki-jzkit-z3950-DM.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/ki-jzkit-z3950-DM.jar], DelegatingHandler@973346385[path=sebina.ear/sebinaopac.war/WEB-INF/lib/SN_Opac.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/SN_Opac.jar], DelegatingHandler@1649753496[path=sebina.ear/sebinaopac.war/WEB-INF/lib/h2-1.3.173.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/h2-1.3.173.jar], DelegatingHandler@1245640855[path=sebina.ear/sebinaopac.war/WEB-INF/lib/taglibs-string.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/taglibs-string.jar], DelegatingHandler@1815259029[path=sebina.ear/sebinaopac.war/WEB-INF/lib/javaetmoi-spring4-vfs2-support-1.4.0.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/javaetmoi-spring4-vfs2-support-1.4.0.jar], DelegatingHandler@1905811121[path=sebina.ear/sebinaopac.war/WEB-INF/lib/spring-beans-4.1.6.RELEASE.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/spring-beans-4.1.6.RELEASE.jar], DelegatingHandler@1248915642[path=sebina.ear/sebinaopac.war/WEB-INF/lib/spring-expression-4.1.6.RELEASE.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/spring-expression-4.1.6.RELEASE.jar], DelegatingHandler@1020029316[path=sebina.ear/sebinaopac.war/WEB-INF/lib/spring-web-4.1.6.RELEASE.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/spring-web-4.1.6.RELEASE.jar], DelegatingHandler@270760011[path=sebina.ear/sebinaopac.war/WEB-INF/lib/dwr.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/dwr.jar], DelegatingHandler@145656884[path=sebina.ear/sebinaopac.war/WEB-INF/lib/oaicat.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/oaicat.jar], DelegatingHandler@2071375455[path=sebina.ear/sebinaopac.war/WEB-INF/lib/ini4j-0.5.4.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/ini4j-0.5.4.jar], DelegatingHandler@749870668[path=sebina.ear/sebinaopac.war/WEB-INF/lib/ki-jzkit-iface.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/ki-jzkit-iface.jar], DelegatingHandler@1642276480[path=sebina.ear/sebinaopac.war/WEB-INF/lib/cql-java.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/cql-java.jar], DelegatingHandler@133484469[path=sebina.ear/sebinaopac.war/WEB-INF/lib/harvester2.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/harvester2.jar], DelegatingHandler@1500543015[path=sebina.ear/sebinaopac.war/WEB-INF/lib/spring-core-4.1.6.RELEASE.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/spring-core-4.1.6.RELEASE.jar], DelegatingHandler@1725986384[path=sebina.ear/sebinaopac.war/WEB-INF/lib/sn_opac_ws_mlol.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/sn_opac_ws_mlol.jar], DelegatingHandler@444052212[path=sebina.ear/sebinaopac.war/WEB-INF/lib/spring-context-support-4.1.6.RELEASE.jar context=file:/home/sol/JBOSS5/sol/HEAD/deploy/ real=file:/home/sol/JBOSS5/sol/HEAD/deploy/sebina.ear/sebinaopac.war/WEB-INF/lib/spring-context-support-4.1.6.RELEASE.jar]]  delegates=null exported=[org.springframework.asm, com.k_int.util.Configuration, , it.sebina.w.dwr, org.directwebremoting.util, de.fuberlin.wiwiss.pubby.negotiation, org.springframework.web.servlet.tags, org.apache.taglibs.string.util, com.akros.sebina.opac.lucene, com.akros.sebina.opac.cache, org.h2.util.data.zip.org.h2.res, com.k_int.gen.ESFormat_ItemOrder, org.springframework.beans.factory.access, org.springframework.objenesis.instantiator.jrockit, org.springframework.objenesis.instantiator.perc, ORG.oclc.oai.server.verb.extension, org.apache.velocity.io, org.springframework.validation.annotation, org.directwebremoting.contrib, org.springframework.web.servlet.view, org.springframework.instrument.classloading.tomcat, org.springframework.jmx.export.assembler, ORG.oclc.os.SRW.Normalization, com.k_int.util.PrefixLang, org.apache.velocity.tools.view.context, org.springframework.core.annotation, org.springframework.web.bind.annotation.support, com.akros.sebina.opac.model.stampe, org.springframework.context.config, org.h2.fulltext, org.springframework.mail.javamail, org.h2.api, com.k_int.gen.ResourceReport_Format_Resource_2, it.sebina.w.search.mlol, org.springframework.http.client.support, com.k_int.gen.ResourceReport_Format_Resource_1, gov.loc.www.zing.srw.service, org.springframework.beans.factory.annotation, gov.loc.www.zing.srw, it.sebina.w.bo.sebstore, org.springframework.objenesis.instantiator.gcj, org.springframework.util.concurrent, it.sebina.w.search.facet, org.springframework.cglib.reflect, ORG.oclc.os.SRW.Lucene, it.sebina.w.frbr, org.springframework.lang, org.apache.velocity.runtime, org.springframework.expression, org.springframework.http.server, com.k_int.util.ThreadPool, org.h2.mvstore.type, org.springframework.web.filter, it.sebina.w.dwr.bean.listmania, org.springframework.scheduling.annotation, org.springframework.ejb.config, org.springframework.web.servlet.mvc, org.springframework.core.type.filter, META-INF.services, com.akros.sebina.opac.model.z3950, org.springframework.web.context.request.async, com.k_int.gen.RecordSyntax_explain, org.apache.velocity.runtime.resource, org.springframework.ui.freemarker, org.springframework.core.env, ORG.oclc.oai.harvester2.verb, org.springframework.cglib.proxy, org.springframework.aop, org.springframework.cglib.transform.impl, org.springframework.validation.support, org.springframework.jmx, org.springframework.jmx.access, com.akros.sebina.opac.control, it.sebina.w.core, com.acme.oai, org.springframework.core, com.k_int.IR.Syntaxes, org.directwebremoting.impl, org.apache.velocity.texen.defaults, it.sebina.w.search.voc, org.springframework.cache.jcache.interceptor, org.springframework.util.comparator, org.springframework.ejb.access, org.apache.velocity.runtime.parser, org.springframework.aop.scope, org.springframework.aop.aspectj, org.springframework.aop.support.annotation, org.h2.engine, org.springframework.expression.spel.support, org.directwebremoting.convert, com.k_int.gen.ESFormat_Update0, org.springframework.web.servlet.theme, it.sebina.w.bo.upgrade, it.sebina.w.inout, org.apache.velocity.tools.view.tools, com.akros.sebina.opac.model.db, it.sebina.w.dwr.bean.wroot, it.medialibrary.www.services, org.directwebremoting.webwork, org.springframework.scheduling.concurrent, org.h2.upgrade, org.springframework.instrument.classloading, org.springframework.objenesis.instantiator.basic, org.h2.tools, org.springframework.jndi.support, org.springframework.core.type, org.springframework.http.converter.xml, org.springframework.aop.framework.adapter, org.springframework.context.weaving, it.sebina.w.search, com.akros.sebina.opac.model.OAI.harvester, org.directwebremoting.beehive, it.sebina.w.bo.tools, META-INF, org.h2.mvstore.db, org.springframework.cache.annotation, org.springframework.http.converter.json, org.apache.velocity.tools.struts, org.springframework.context.expression, org.springframework.http.client, it.sebina.w.bo.ws.profile, it.sebina.w.search.facet.thread, org.springframework.scheduling.commonj, it.sebina.w.batch.PMV, org.h2.mvstore.cache, com.k_int.util.SearchFactory, org.apache.velocity.servlet, org.springframework.aop.target.dynamic, com.k_int.gen, org.springframework.web.servlet.config, org.springframework.web.servlet.handler, it.sebina.w.search.spell.lucene.util, com.k_int.gen.RecordSyntax_opac, org.springframework.beans.factory, org.springframework.util, org.apache.velocity.exception, org.h2.security, it.sebina.w.bo.news, it.sebina.w.search.opensearch, it.sebina.w.dwr.bean.suggread, org.ini4j, com.k_int.z3950.util, it.sebina.w.embed, org.springframework.web.servlet.view.xml, org.springframework.aop.config, org.springframework.jmx.export.naming, org.springframework.aop.framework, org.directwebremoting.proxy.scriptaculous, org.directwebremoting.fluent, org.h2.jmx, org.springframework.aop.aspectj.autoproxy, org.springframework.objenesis.strategy, org.springframework.web.jsf, org.apache.velocity.runtime.parser.node, org.springframework.objenesis.instantiator, com.k_int.gen.Z39_50_APDU_1995, it.sebina.w.bo.listmania, com.k_int.gen.RecordSyntax_summary, org.springframework.cglib.beans, it.sebina.w.dipendenze, org.apache.velocity.runtime.defaults, org.springframework.beans.annotation, org.springframework.context.i18n, it.sebina.w.search.parser, org.springframework.instrument.classloading.websphere, it.sebina.w.bo.scroll, ORG.oclc.oai.server.catalog.helpers, org.springframework.beans.factory.xml, com.akros.sebina.opac.model.re, it.sebina.w.bo.novita, org.directwebremoting.create, org.springframework.web.servlet.mvc.annotation, com.akros.sebina.opac.model.OAI, org.apache.velocity.util, org.h2.server.pg, org.directwebremoting.faces, org.h2.util.data.zip.org.h2.server.pg, org.h2.command.dml, org.h2.message, org.springframework.aop.support, org.apache.velocity.util.introspection, org.apache.velocity.context, org.springframework.context.support, gov.loc.www.zing.srw.interfaces, com.akros.sebina.opac.model.documento, gov.loc.www.zing.cql.xcql, org.springframework.scheduling.support, it.sebina.w.bo, com.k_int.gen.ESFormat_Update, it.sebina.w.locale, com.k_int.gen.AccessControlFormat_krb_1, org.apache.velocity.tools, ORG.oclc.oai.server.catalog, org.directwebremoting.annotations, com.akros.sebina.opac.model.sru, it.sebina.w.inout.xls, ORG.oclc.oai.server.verb, org.springframework.format, org.springframework.web.method.annotation, org.springframework.util.backoff, org.springframework.web.method, org.springframework.ui, com.k_int.gen.DiagnosticFormatDiag1, com.k_int.z3950.server, org.springframework.web.bind, org.apache.velocity, org.springframework.scripting, org.h2.store.fs, org.springframework.objenesis, org.springframework.aop.interceptor, org.springframework.context.access, org.springframework.web.servlet.i18n, org.h2.schema, it.sebina.w.bo.tom, org.directwebremoting.spring, com.akros.sebina.opac.xml2idx.blend, it.sebina.w.search.shelf, org.springframework.web.multipart.support, ORG.oclc.os.SRW, org.springframework.web.client.support, com.k_int.gen.ESFormat_ExportInvocation, org.springframework.remoting.soap, org.apache.velocity.runtime.directive, org.springframework.web, com.k_int.util.Repository, org.springframework.ui.jasperreports, com.k_int.IR.QueryModels, org.h2.bnf, org.springframework.web.multipart.commons, it.sebina.w.cache, org.springframework.core.io.support, it.sebina.w.formbean, org.apache.velocity.runtime.log, org.springframework.remoting, org.springframework.web.method.support, org.apache.velocity.tools.generic.log, org.springframework.core.serializer, org.apache.velocity.runtime.resource.loader, org.springframework.core.convert.converter, org.springframework.aop.target, org.springframework.web.servlet.view.jasperreports, org.springframework.web.servlet, org.springframework.aop.framework.autoproxy.target, org.springframework.beans.factory.support, ORG.oclc.oai.harvester2.app, org.h2.command, org.springframework.expression.spel.standard, org.springframework.cache.transaction, org.springframework.web.servlet.mvc.support, org.springframework.jmx.export.notification, it.sebina.w.dwr.bean, org.springframework.ui.context, org.apache.velocity.convert, org.directwebremoting.guice.spring, it.sebina.w.bo.decalog, org.h2.constraint, com.akros.sebina.opac.model.ricerca, org.springframework.format.datetime.standard, gov.loc.www.zing.srw.diagnostic, it.sebina.w.hibernate, org.springframework.core.task, org.springframework.web.servlet.tags.form, it.sebina.w.search.spell, com.k_int.gen.RecordSyntax_generic, org.directwebremoting.servlet, org.h2, org.springframework.beans.factory.config, org.springframework.util.xml, org.springframework.context.annotation, org.springframework.format.annotation, org.springframework.remoting.support, org.springframework.web.servlet.resource, com.akros.sebina.opac.locale, org.springframework.web.servlet.mvc.method.annotation, org.springframework.web.servlet.mvc.method, it.sebina.w.bo.initcontext, org.springframework.web.servlet.view.velocity, org.h2.store, org.directwebremoting.hibernate, com.k_int.IR, org.directwebremoting.struts, com.k_int.util.RPNQueryRep, com.javaetmoi.core.spring, it.sebina.w.bo.stat.search, it.sebina.w.dwr.a.dashboard, org.springframework.context.event, org.h2.constant, it.sebina.w.dwr.a, org.springframework.jmx.support, it.sebina.w.dwr.d, it.sebina.w.core.less, org.springframework.mail, org.springframework.stereotype, org.springframework.remoting.caucho, org.apache.velocity.tools.view.servlet, org.springframework.cache.support, org.h2.index, org.springframework.web.servlet.support, org.springframework.instrument.classloading.glassfish, com.k_int.z3950.IRClient, org.h2.value, ORG.oclc.oai.server.crosswalk, com.akros.sebina.opac.util, it.sebina.w.search.suggest, org.springframework.scheduling.quartz, org.springframework.web.multipart, it.sebina.w.search.voc.test, com.k_int.gen.ESFormat_PeriodicQuerySchedule, org.springframework.beans.support, org.springframework.web.servlet.view.tiles3, org.springframework.web.servlet.view.tiles2, org.z3950.zing.cql, org.h2.table, com.k_int.gen.AccessControlFormat_prompt_1, org.springframework.scripting.groovy, it.sebina.w.search.dym, org.springframework.ui.velocity, com.k_int.gen.RecordSyntax_SUTRS, com.k_int.gen.NegotiationRecordDefinition_charSetandLanguageNegotiation_3, org.apache.velocity.texen, it.sebina.w.bo.gamification, it.sebina.w.bo.twitter, org.springframework.scripting.bsh, org.springframework.http.converter.protobuf, org.springframework.cache.concurrent, org.springframework.core.task.support, org.springframework.objenesis.instantiator.android, org.springframework.aop.framework.autoproxy, it.sebina.w.bo.ws, org.springframework.web.util, org.apache.velocity.tools.generic, com.akros.sebina.opac.conf.w, org.springframework.remoting.rmi, org.springframework.http.converter.support, org.springframework.format.number, it.sebina.w.bo.task, com.javaetmoi.core.spring.vfs, META-INF.maven.org.ini4j.ini4j, com.k_int.gen.ESFormat_PersistentQuery, org.springframework.cache.jcache.config, it.sebina.w.bo.cover, it.sebina.w.bo.cover.amazon, it.sebina.w.bo.analytics, org.springframework.beans.factory.wiring, org.springframework.ui.context.support, META-INF.maven.com.javaetmoi.core.javaetmoi-spring4-vfs2-support, org.springframework.aop.aspectj.annotation, org.springframework.cache.guava, org.springframework.scheduling.config, org.apache.velocity.app.tools, org.springframework.http.converter, org.springframework.web.jsf.el, org.springframework.cache.interceptor, com.akros.sebina.opac.taglib, org.springframework.jmx.export, org.springframework.beans.propertyeditors, org.springframework.core.serializer.support, org.springframework.beans.factory.access.el, org.springframework.web.servlet.view.document, org.springframework.web.accept, org.springframework.scripting.jruby, org.apache.velocity.texen.util, org.springframework.cache.jcache, com.k_int.util.SortSpecLang, com.akros.sebina.opac.model.OAI.harvester.utility, ORG.oclc.oai.server, org.directwebremoting.dwrp, org.springframework.scripting.support, org.springframework.jmx.export.metadata, org.springframework.core.io, org.springframework.context, org.h2.mvstore, com.k_int.gen.ESFormat_PersistentResultSet, org.springframework.web.context, org.directwebremoting.extend, com.k_int.gen.RecordSyntax_ESTaskPackage, org.springframework.beans.factory.groovy, org.springframework.scheduling, com.k_int.gen.AccessControlFormat_des_1, org.springframework.web.servlet.view.xslt, uk.ltd.getahead.dwr.compat, it.sebina.w.search.where, org.directwebremoting.guice, org.apache.velocity.app.event, com.k_int.util, org.springframework.instrument.classloading.jboss, com.k_int.IR.QueryModels.InternalQueryRep, it.sebina.w.dwr.bean.wchisiamo, org.springframework.beans, org.h2.util.data.zip.org.h2.server.web.res, org.h2.jdbcx, uk.ltd.getahead.dwr, org.springframework.jndi, gov.loc.www.zing.srw.srw_sample_service, org.h2.result, org.springframework.web.servlet.view.freemarker, gov.loc.www.zing.srw.srw_bindings, org.apache.velocity.tools.view.i18n, it.sebina.w.hibernate.q, org.springframework.expression.spel, com.akros.sebina.opac.xml2idx.xsl, it.sebina.w.dwr.bean.wavanzata, org.springframework.cglib.transform, org.springframework.expression.common, org.springframework.core.style, org.springframework.validation, org.springframework.cglib, com.k_int.gen.ElementSpecificationFormat_eSpec_1, org.h2.command.ddl, org.h2.expression, it.sebina.w.control.api, org.springframework.expression.spel.ast, org.springframework.validation.beanvalidation, org.apache.velocity.tools.config, com.akros.sebina.opac.lucene.mixin, org.apache.velocity.texen.ant, com.akros.sebina.opac.view, org.springframework.beans.factory.parsing, ORG.oclc.oai.util, org.apache.velocity.tools.view, it.sebina.w.bo.mlol, org.springframework.web.context.request, org.springframework.format.datetime.joda, org.springframework.remoting.jaxws, com.akros.sebina.opac.xml2idx, com.k_int.hss, org.springframework.core.convert, org.springframework.web.servlet.config.annotation, org.springframework.format.datetime, org.springframework.remoting.httpinvoker, org.springframework.beans.factory.serviceloader, it.sebina.w.dwr.w, org.apache.velocity.runtime.resource.util, org.apache.velocity.anakia, org.springframework.cglib.util, com.akros.sebina.opac.xml2idx.test, org.springframework.core.convert.support, com.k_int.util.CCL, com.k_int.gen.UserInfoFormat_searchResult_1, org.directwebremoting.proxy.dwr, org.springframework.cache, org.springframework.format.support, org.springframework.cache.ehcache, org.apache.velocity.app, org.directwebremoting.proxy, META-INF.eliminati.zip.eliminati.com.k_int.z3950.client, it.sebina.w.search.spell.lucene, org.springframework.http.converter.feed, org.springframework.http, org.springframework.web.servlet.view.groovy, org.springframework.jmx.export.annotation, org.directwebremoting.filter, it.sebina.w.bo.impactfactor, org.springframework.scripting.config, it.sebina.w.batch.cmstypo3, org.apache.velocity.tools.view.jsp, org.springframework.web.servlet.mvc.condition, com.k_int.IR.Syntaxes.Conversion, org.springframework.web.context.support, org.directwebremoting, org.springframework.instrument.classloading.weblogic, org.springframework.web.bind.support, com.akros.sebina.opac.conf, it.sebina.w.dwr.bean.pagesearch, org.apache.taglibs.string, org.h2.server, org.ini4j.spi, com.k_int.z3950.server.demo, it.sebina.w.batch, com.k_int.util.LoggingFacade, org.springframework.web.bind.annotation, org.springframework.web.servlet.mvc.multiaction, org.springframework.cache.config, org.h2.jdbc, org.springframework.web.client, com.akros.sebina.opac.model.dispo, it.sebina.w.bo.newsletter, com.k_int.gen.ESFormat_ExportSpecification, com.akros.sebina.opac.model.OAI.harvester.xharvestinglog, org.h2.server.web, org.apache.velocity.app.event.implement, com.akros.sebina.opac.xml2idx.opera, it.sebina.w.search.clump, org.springframework.web.servlet.view.feed, org.springframework.cglib.core, org.springframework.web.servlet.view.json, org.apache.velocity.runtime.visitor, it.sebina.w.control, org.h2.compress, it.sebina.w.test, org.h2.util, it.sebina.w.bo.ebook, org.h2.mvstore.rtree, org.springframework.core.type.classreading, it.sebina.w.search.searcherquery, org.springframework.ejb.interceptor, org.springframework.objenesis.instantiator.sun] <IMPORT-ALL>NON_EMPTY}}
    at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:448)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at org.springframework.core.io.VfsUtils.<clinit>(VfsUtils.java:71)
    … 104 more

     

    Can you give us support on this?

    It seems that it’s always trying to use vfs3 instead of 2, searching for org.jboss.vfs.VFS class.

    Thanks, Phaedra.

    • Hi Phaedra,

      The PathMatchingResourcePatternResolver is used instead of the VfsPathMatchingResourcePatternResolver. It’s demonstrate the VFS2 patch is not taken into account.
      Are you sure to configure the JBoss5AnnotationConfigWebApplicationContext or JBoss5XmlWebApplicationContext in your web.xml or in your Java configuration?
      As documentation, you may refer to the README.md of the https://github.com/arey/spring4-vfs2-support/ repo. Please, create an issue on GitHub. It’s more appropriate to discuss about your probleme

      Regards,

      Antoine

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *