Es mostren els missatges amb l'etiqueta de comentaris tomcat. Mostrar tots els missatges
Es mostren els missatges amb l'etiqueta de comentaris tomcat. Mostrar tots els missatges

dijous, 23 de maig del 2013

Error 17002 d'Oracle desde Tomcat

Avui hem trobat un nou problema: en una aplicació executant-se sobre Tomcat 7, usant les llibreries de persistència EclipseLink, un cop fet loguin es quedava tot penjat.

Mirant el catalina.out hi havia els missatges:


[EL Info]: 2013-05-22 23:24:06.515--ServerSession(9509498)--EclipseLink, version: Eclipse Persistence Services - 2.3.2.v20111125-r10461 
[EL Info]: 2013-05-22 23:24:06.624--ServerSession(9509498)--file:/usr/local/apache-tomcat-7.0.40/webapps/BopGestioUsuaris/WEB-INF/classes/_BopGestioUsuarisPU login successful 
[EL Info]: 2013-05-22 23:39:34.411--UnitOfWork(27713589)--Communication failure detected when attempting to perform read query outside of a transaction. Attempting to retry query. Error was: Exception 
[EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseExceptionInternal 
Exception: java.sql.SQLException: Excepción de E/S: Expiró el tiempo de conexión 
Error Code: 17002Call: SELECT COUNT(CODIENTITAT) FROM ENTITAT WHERE (? = ?)        bind => [2 parameters bound]Query: ReportQuery(referenceClass=Entitat sql="SELECT COUNT(CODIENTITAT) FROM ENTITAT WHERE (? = ?)").

Era un error curiós, ja que en reiniciar el Tomcat, funcionava durant una estona correctament.
Buscant informació, hem trobat que això és degut a un error de xarxa, ja que no és capaç de trobar el servidor de base de dades.

Solució: modificar el fitxer persistence.xml per a modificar la URL de connexió i especificar el nom complet del servidor.

dilluns, 17 de desembre del 2012

java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! Absent Code attribute in method that is not native or abstract in class file FILE_NAME

Avui m'ha apregut aquest error en intentar desplegar un projecte fet amb JSF 2.0 i Hibernate sobre Tomcat 6:


SEVERE: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener
java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! Absent Code attribute in method that is not native or abstract in class file ddgi/exposicionsIteAdm/contJSF/VideosnController$VideosnControllerConverter
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:292)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:514)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1288)
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.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1473)
at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:824)
at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:350)
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.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
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:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:680)
Caused by: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! Absent Code attribute in method that is not native or abstract in class file ddgi/exposicionsIteAdm/contJSF/VideosnController$VideosnControllerConverter
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:379)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225)
... 33 more
Caused by: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file ddgi/exposicionsIteAdm/contJSF/VideosnController$VideosnControllerConverter
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1850)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at com.sun.faces.util.Util.loadClass(Util.java:281)
at com.sun.faces.config.AnnotationScanner.processClassList(AnnotationScanner.java:304)
at com.sun.faces.config.JavaClassScanningAnnotationScanner.getAnnotatedClasses(JavaClassScanningAnnotationScanner.java:127)
at com.sun.faces.config.DelegatingAnnotationProvider.getAnnotatedClasses(DelegatingAnnotationProvider.java:85)
at com.sun.faces.config.ConfigManager$AnnotationScanTask.call(ConfigManager.java:846)
at com.sun.faces.config.ConfigManager$AnnotationScanTask.call(ConfigManager.java:798)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:350)
... 34 more


La solució? Doncs una recerca a Google només reflecteix problemes de Maven, però en el meu cas no estic usant Maven, sinó Ant (via NetBeans), pel que no em serveix.

Al final, la solució ha consistit en:

  1. Matar tots els processos Java
  2. Iniciar NetBeans
  3. Recompilar completament el projecte
  4. Redesplegar-lo
La solució ha estat simple, però fora bo tenir una explicació millor....


dimecres, 3 d’octubre del 2012

Uncompilable source code - Erroneous tree type: javax.faces.context.FacesContext

Realitzant unes modificacions a un projecte que vàrem desenvolupar fa uns anys a Amidasoft, m'ha aparegut el següent error en executar-lo (sobre un Apache Tomcat 5.5):


java.lang.RuntimeException: Uncompilable source code - Erroneous tree type: javax.faces.context.FacesContext


Misteriosament, no apareixia a Google cap referència a un error així, de manera que m'ha calgut espavilar-me per a trobar la solució.

Després de molt barallar-mi, compilar i recompilar el projecte i totes les llibreries de les que depèn, he trobat la solució: estava afegint el JSF-1.1 al war del projecte, mentre que el que calia fer servir era el JSF-1.2


Una tonteria succeïda en copiar les llibreries, però que m'ha costat quasi un matí sencer...