Je me demande comment faire pour générer un vocabulaire dynamique SQL
à deux niveaux ?
Pour un seul niveau, je suis parti du fichier sqlVocabulary-example.xml
founi (ORI-OAI 1.7).
La base SQL d'origine est en latin1 alors que ORI-OAI est en utf8 et je
me demande comment il faudra traiter ça ?
Mais pour le moment, le vocabulaire n'est pas généré et dans les logs :
1603 mai/15 07:12:52 WARN domain.VocabularyService getVocabulary[49] - An exception occured with the providerManager [org.orioai.vocabulary.domain.DynamicVocabularyProviderManager@eabd2f] when retrieving the vocabulary auf_etablissements.
We continue with others providerManagers.
Here the exception :
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at org.orioai.vocabulary.domain.providers.sql.SqlProvider.getXmlStream(SqlProvider.java:63)
at org.orioai.vocabulary.domain.VocabularyProviderManager.getVocabulary(VocabularyProviderManager.java:45)
at org.orioai.vocabulary.domain.VocabularyService.getVocabulary(VocabularyService.java:46)
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 org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
at org.orioai.vocabulary.domain.utils.cache.OriNameMatchCachingInterceptor.invoke(OriNameMatchCachingInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:203)
at $Proxy0.getVocabulary(Unknown Source)
at org.orioai.vocabulary.domain.utils.cache.CachePreloader$PreloadThread.run(CachePreloader.java:55)
15 mai 2012 07:12:52 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Déploiement du répertoire ROOT de l'application web
1740 mai/15 07:12:52 ERROR cache.OriNameMatchCachingInterceptor invoke[126] - Unable to execute the cached method and no cache found :-(
org.orioai.vocabulary.exceptions.OriVocabularyException: A problem occurs while retrieving the vocabulary : auf_etablissements, so please see details below.
at org.orioai.vocabulary.domain.VocabularyService.getVocabulary(VocabularyService.java:57)
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 org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
at org.orioai.vocabulary.domain.utils.cache.OriNameMatchCachingInterceptor.invoke(OriNameMatchCachingInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:203)
at $Proxy0.getVocabulary(Unknown Source)
at org.orioai.vocabulary.domain.utils.cache.CachePreloader$PreloadThread.run(CachePreloader.java:55)
aused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at org.orioai.vocabulary.domain.providers.sql.SqlProvider.getXmlStream(SqlProvider.java:63)
at org.orioai.vocabulary.domain.VocabularyProviderManager.getVocabulary(VocabularyProviderManager.java:45)
at org.orioai.vocabulary.domain.VocabularyService.getVocabulary(VocabularyService.java:46)
... 12 more
1740 mai/15 07:12:52 ERROR cache.CachePreloader run[69] - error preloading a vocabulary : auf_etablissements
org.orioai.vocabulary.exceptions.OriVocabularyException: A problem occurs while retrieving the vocabulary : auf_etablissements, so please see details below.
at org.orioai.vocabulary.domain.VocabularyService.getVocabulary(VocabularyService.java:57)
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 org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
at org.orioai.vocabulary.domain.utils.cache.OriNameMatchCachingInterceptor.invoke(OriNameMatchCachingInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:203)
at $Proxy0.getVocabulary(Unknown Source)
at org.orioai.vocabulary.domain.utils.cache.CachePreloader$PreloadThread.run(CachePreloader.java:55)
Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at org.orioai.vocabulary.domain.providers.sql.SqlProvider.getXmlStream(SqlProvider.java:63)
at org.orioai.vocabulary.domain.VocabularyProviderManager.getVocabulary(VocabularyProviderManager.java:45)
at org.orioai.vocabulary.domain.VocabularyService.getVocabulary(VocabularyService.java:46)
... 12 more
Et quand j'essaie de consulter ce vocabulaire dans le module vocabulary,
il y a aussi :
Caused by: org.springframework.dao.DataAccessResourceFailureException: StatementCallback; SQL [...requete...]; Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.io.EOFException
STACKTRACE:
va.io.EOFException
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1905)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2351)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2862)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2988)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2917)
at com.mysql.jdbc.Statement.executeQuery(Statement.java:824)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:388)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:341)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:403)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:411)
at org.springframework.jdbc.core.JdbcTemplate.queryForList(JdbcTemplate.java:442)
at org.orioai.vocabulary.domain.providers.sql.SqlProvider.getXmlStream(SqlProvider.java:55)
at org.orioai.vocabulary.domain.VocabularyProviderManager.getVocabulary(VocabularyProviderManager.java:45)
at org.orioai.vocabulary.domain.VocabularyService.getVocabulary(VocabularyService.java:46)
at sun.reflect.GeneratedMethodAccessor27.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
at org.orioai.vocabulary.domain.utils.cache.OriNameMatchCachingInterceptor.invoke(OriNameMatchCachingInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:203)
at $Proxy0.getVocabulary(Unknown Source)
at org.orioai.vocabulary.web.TestVocabularyServlet.doGetVocab(TestVocabularyServlet.java:211)
at org.orioai.vocabulary.web.TestVocabularyServlet.doGet(TestVocabularyServlet.java:78)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:706)
at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:677)
at org.apache.jsp.admin_jsp._jspService(admin_jsp.java:54)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:465)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
** END NESTED EXCEPTION **