2011-12-12 11 views
6

मेरे पास जेबॉस एएस 4.2.3 पर चल रहा एक एप्लिकेशन है और मैं इसे जेबॉस एएस 7.0.2 में माइग्रेट करने की कोशिश कर रहा हूं। मैं सीम को 2.1.1 से 2.2.2 तक अपग्रेड कर रहा हूं। मैं कक्षा नहीं मिला अपवादों में से कुछ का समाधान कर लिया है, लेकिन मैंजेबॉस एएस 7 माइग्रेशन - java.lang.ClassNotFoundException: org.hibernate.validator.ClassValidator

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

पर अटक कर रहा हूँ मेरा पूरा स्टैक ट्रेस के नीचे है।

मैं एएस 7 में नए वर्ग लोडर पर बहुत स्पष्ट नहीं हूं। क्या हाइबरनेट 4 सीम 2.2.2 के साथ काम करता है? मैंने org.hibernate और org.hibernate.validator का उपयोग करने के लिए jboss-deployment-struct.xml में निर्यात निर्दिष्ट करने का प्रयास किया है। हालांकि, जब मैं इन स्थानों में जारों को देखता हूं, तो मुझे क्लासवैलिएटर क्लास नहीं दिखाई देता है ...

मैंने ईएआर/lib में हाइबरनेट 3 जार जोड़ने और मैनिफेस्ट में निर्दिष्ट करने का भी प्रयास किया है, लेकिन यह नहीं है कुछ भी बदलें मैं देखता हूं कि हाइबरनेट 3 हाइबरनेट-validator.jar में क्लास वैलिडेटेटर क्लास होता है, लेकिन यह अभी भी इसे नहीं ढूंढता है।

अद्यतन मैं भी कोशिश की हाइबरनेट-सत्यापनकर्ता-विरासत-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

रास्तों और स्टैक ट्रेस में नामों को अनदेखा करें जैसा कि मैंने उनमें से ज्यादातर यहाँ पोस्ट करने के लिए बदल दिया है। – Mike

+1

असंगत जावा ईई अनुप्रयोग सर्वर की अद्भुत दुनिया में आपका स्वागत है ... (भले ही वे एक ही विक्रेता से हों)। –

+0

अजीब, मुझे बस हाइबरनेट 4 के साथ काम करने और हाइबरनेट-वैलिडेटर पर सीम 2 की हार्ड निर्भरता को पूरा करने के लिए तैनाती (कोई हाइबरनेट 3 जेएआरएस) में हाइबरनेट-वैलिडेटर 3.1.0.जीए नहीं है। कम से कम यह मेरे परीक्षण HTTP सर्वलेट के लिए काम करता है। बीटीडब्ल्यू मैंने जेबॉस एएस 7.0.1 को सबसे स्थिर माना। – Kawu

उत्तर

5

Classloading मॉडल JBoss 7 में बदल यह बहुत सामान है कि स्पष्ट रूप से घोषित नहीं कर रहा है छुपाता है।

आप इन कड़ियों के साथ familar प्राप्त करने के लिए:

https://docs.jboss.org/author/display/AS7/Developer+Guide#DeveloperGuide-HowtoresolveClassNotFoundExceptionsandNoCLassDefFoundErrors

https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7

3

1 - मैं jboss7.1.1 2 में घोषित मॉड्यूल द्वारा इस समस्या का समाधान - lib में MANIFEST.MF फ़ाइल को संशोधित

: फ़ोल्डर

\ jboss-as-7.1.1.Final \ मॉड्यूल में \ फ़ोल्डर इस फ़ोल्डर बना

\ jboss-as-7.1.1.Final \ मॉड्यूल ** ऑर्ग \ हाइबरनेट \ सत्यापनकर्ता \ मुख्य **

तो मैं कॉपी फ़ाइल हाइबरनेट-सत्यापनकर्ता-4.2.0.Final.jar मुख्य \

के फ़ोल्डर में

तो मैं मुख्य फ़ोल्डर में फ़ाइल module.xml बना सकते हैं और संशोधित कि bellow कोड द्वारा:

<?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> 

अब, अपने मॉड्यूल jboss मॉड्यूल में बनाया। इस लाइन पर

देखो:

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

आप bellow की तरह अपने MANIFEST.MF फ़ाइल में उपयोग करना चाहिए निर्भरता भाग में org.hibernate.validator:

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 

तो आपकी समस्या को पारित किया जाना चाहिए: डी

यदि आपको ClassNotFoundException का कोई संदेश मिलता है, तो आपको jboss मॉड्यूल घोषित करना होगा और उसमें उसका नाम MANIFEST.MF फ़ाइल में उपयोग करना होगा।

: डी

-1

persistence.xml में इस डाल इस त्रुटि पर मेरे लिए काम किया:

property name="javax.persistence.validation.mode" value="none" 
संबंधित मुद्दे