2011-12-12 50 views
6

Tengo una aplicación ejecutándose en JBoss AS 4.2.3 y estoy tratando de migrar esto a JBoss AS 7.0.2. También estoy actualizando la costura de 2.1.1 a 2.2.2. He resuelto algunos de la clase que no se encuentran excepciones, pero estoy atascado enMigración de JBoss AS 7 - java.lang.ClassNotFoundException: org.hibernate.validator.ClassValidator

java.lang.ClassNotFoundException: org.hibernate.validator.ClassValidator

Mi traza completa está por debajo.

No estoy muy claro con el nuevo cargador de clase en AS 7. ¿Hibernate 4 funciona con seam 2.2.2? He intentado especificar las exportaciones en jboss-deployment-structure.xml para usar org.hibernate y org.hibernate.validator. Sin embargo, cuando miro en los tarros en estas ubicaciones, no veo la clase ClassValidator ...

También he intentado agregar hibernate 3 jar a EAR/lib y especificarlos en el manifiesto, pero eso no Cambia cualquier cosa. Veo que hibernate 3 hibernate-validator.jar contiene la clase classValidator, pero aún no la encuentra.

ACTUALIZACIÓN también probé hibernación-validador-legacy-4.0.2.GA.jar

hibernate-annotations-3.4.0.GA.jar 
hibernate-commons-annotations-3.1.0.GA.jar 
hibernate-core-3.3.0.SP1.jar 
hibernate-validator-3.1.0.GA.jar 
14:16:07,776 INFO [org.jboss.seam.Component] (MSC service thread 1-2) Component: Test, scope: EVENT, type: JAVA_BEAN, class: com.test.Test 
14:16:07,789 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/oneSourceUI]] (MSC service thread 1-2) Exception sending context initialized event to listener instance of class org.jboss.seam.servlet.SeamListener: java.lang.RuntimeException: Could not create Component: Test 
    at org.jboss.seam.init.Initialization.addComponent(Initialization.java:1202) [jboss-seam.jar:] 
    at org.jboss.seam.init.Initialization.installComponents(Initialization.java:1118) [jboss-seam.jar:] 
    at org.jboss.seam.init.Initialization.init(Initialization.java:737) [jboss-seam.jar:] 
    at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:36) [jboss-seam.jar:] 
    at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3368) [jbossweb-7.0.1.Final.jar:7.0.2.Final] 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3821) [jbossweb-7.0.1.Final.jar:7.0.2.Final] 
    at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:70) [jboss-as-web-7.0.2.Final.jar:7.0.2.Final] 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [:1.7.0_01] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [:1.7.0_01] 
    at java.lang.Thread.run(Thread.java:722) [:1.7.0_01] 
Caused by: java.lang.NoClassDefFoundError: org/hibernate/validator/ClassValidator 
    at java.lang.Class.getDeclaredMethods0(Native Method) [:1.7.0_01] 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2442) [:1.7.0_01] 
    at java.lang.Class.getDeclaredMethods(Class.java:1808) [:1.7.0_01] 
    at org.jboss.seam.Component.initMembers(Component.java:553) [jboss-seam.jar:] 
    at org.jboss.seam.Component.(Component.java:247) [jboss-seam.jar:] 
    at org.jboss.seam.Component.(Component.java:208) [jboss-seam.jar:] 
    at org.jboss.seam.init.Initialization.addComponent(Initialization.java:1186) [jboss-seam.jar:] 
    ... 11 more 
Caused by: java.lang.ClassNotFoundException: org.hibernate.validator.ClassValidator from [Module "deployment.test-ear.ear.jboss-seam.jar:main" from Service Module Loader] 
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310) 
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103) 
    ... 18 more 

14:16:07,798 INFO [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-2) Initializing Mojarra (1.2_15-20110809-SNAPSHOT) for context '/test 
14:16:07,828 SEVERE [javax.enterprise.resource.webcontainer.jsf.application] (MSC service thread 1-2) JSF1051: Service entry 'org.jboss.as.web.deployment.jsf.JsfInjectionProvider' does not extend DiscoverableInjectionProvider. Entry will be ignored. 
14:16:07,829 INFO [javax.enterprise.resource.webcontainer.jsf.application] (MSC service thread 1-2) JSF1048: PostConstruct/PreDestroy annotations present. ManagedBeans methods marked with these annotations will have said annotations processed. 
14:16:07,852 ERROR [org.apache.catalina.core.StandardContext] (MSC service thread 1-2) Error listenerStart 
14:16:07,854 ERROR [org.apache.catalina.core.StandardContext] (MSC service thread 1-2) Context [/test] startup failed due to previous errors 
14:16:07,855 INFO [org.jboss.web] (MSC service thread 1-2) registering web context: /oneSourceUI 
14:16:08,101 INFO [org.apache.catalina.core.StandardContext] (MSC service thread 1-1) Container org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/oneSourceUI] has not been started 
14:16:08,816 INFO [org.jboss.as.server.controller] (DeploymentScanner-threads - 2) Deployment of "test-ear.ear" was rolled back with failure message {"Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"test-ear.ear/test-ejb.jar#testBackout\" missing [ jboss.naming.context.java.testBackoutDatasource ]","jboss.persistenceunit.\"test-ear.ear/test-ejb.jar#test\" missing [ jboss.naming.context.java.testDatasource ]"]} 
14:16:08,857 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) Stopped deployment test-ejb.jar in 760ms 
14:16:08,857 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) Stopped deployment jboss-seam.jar in 761ms 
14:16:09,613 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) Stopped deployment oneSourceUI.war in 1517ms 
14:16:09,720 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) Stopped deployment oneSourceUI-ear.ear in 1624ms 
14:16:09,728 ERROR [org.jboss.as.deployment] (DeploymentScanner-threads - 1) {"Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"test-ear.ear/test-ejb.jar#testBackout\" missing [ jboss.naming.context.java.testBackoutDatasource ]","jboss.persistenceunit.\"test-ear.ear/test-ejb.jar#test\" missing [ jboss.naming.context.java.testDatasource ]"]}}} 
+0

por favor, ignora las rutas y los nombres en el seguimiento de pila como he cambiado la mayoría de ellos para publicar aquí. – Mike

+1

Bienvenido al maravilloso mundo de los servidores de aplicaciones incompatibles Java EE ... (incluso si son del mismo proveedor). –

+0

Extraño, acabo de hacerlo funcionar con Hibernate 4 y con hibernate-validator 3.1.0.GA en la implementación (sin Hibernate 3 JAR) para satisfacer la dependencia de Seam 2 en hibernate-validator. Al menos esto funciona para mi servlet HTTP de prueba. Por cierto, descubrí que JBoss AS 7.0.1 es el más estable. – Kawu

Respuesta

3

1 - puedo solucionar este problema por el módulo de declarar en jboss7.1.1 2 - modificar el archivo MANIFEST.MF en lib carpeta

en \ jboss-as-7.1.1.Final \ modules \ folder crea estas carpetas:

\ \ jboss-as-7.1.1.Final módulos ** org \ hibernación \ validador \ principal **

continuación copio el archivo de hibernación-validador-4.2.0.Final.jar en la carpeta principal de \

entonces crear Module.xml archivo en la carpeta principal y modificar ese código de abajo:

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.1" name="org.hibernate.validator"> 
    <resources> 
    <resource-root path="hibernate-validator-4.2.0.Final.jar"/> 
    </resources> 

    <dependencies> 
    <module name="javax.api"/> 
    <module name="javax.persistence.api"/> 
    <module name="javax.validation.api"/> 
    <module name="javax.persistence.api"/> 
    <module name="javax.xml.bind.api"/> 
    <module name="org.jboss.logging"/> 
    <module name="org.jboss.common-core"/> 
    <module name="org.joda.time"/> 
    <module name="org.slf4j"/> 
    <module name="org.apache.xerces" services="import"/> 
    <module name="sun.jdk" services="import"/> 
    </dependencies> 
</module> 

Ahora, su módulo creado en los módulos de JBoss.

vistazo a esta línea:

<module xmlns="urn:jboss:module:1.1" name="org.hibernate.validator"> 

deberá utilizar org.hibernate.validator en Dependencias parte de su archivo MANIFEST.MF como abajo:

Manifest-Version: 1.0 
Implementation-Vendor: Sahand Samaneh 
Implementation-Title: Sahand System Security Product 
Implementation-Version: 5.0.0-SNAPSHOT 
Implementation-Vendor-Id: com.sahand.product 
Built-By: pooladi.morteza 
Build-Jdk: 1.6.0_21 
Created-By: Apache Maven 3.0.4 
Archiver-Version: Plexus Archiver 
Dependencies: com.sahand.common.util,com.sahand.common.security,com.sahand.model.common,com.sahand.model.user.management,com.sahand.model.security,com.sahand.security.api,com.sahand.security.persistence,com.sahand.security.service,org.apache.commons.codec,org.slf4j,ch.qos.logback.core,ch.qos.logback.classic,javax.validation.api,org.hibernate.validator 

entonces su problema debe pasar: D

si recibe cualquier mensaje de ClassNotFoundException, debe declarar el módulo jboss y usar su nombre en el archivo MANIFEST.MF.

: D

-1

poner esto en persistence.xml trabajó para mí en este error:

property name="javax.persistence.validation.mode" value="none" 
Cuestiones relacionadas