2013-11-25 11 views
5

पर जाया जा सकता है मैं ग्लासफ़िश 4 के लिए एक जेएसएफ + जेपीए प्रोजेक्ट बना रहा हूं 4. इस बिंदु पर मुझे दो बार अपवाद मिलता है :java.lang.ClassCastException: com.example.Entity com.example.Entity

List<User> users = connection.getUserList(); 

for (User u : users) { //exception 

...

public List<User> getUserList() { 

    EntityManager em = Persistence.createEntityManagerFactory("project").createEntityManager(); 
    List<User> users = em.createQuery("SELECT c FROM User c", User.class).getResultList(); 
    em.close(); 
    return users; 
} 

स्टैकट्रेस: ​​

javax.faces.el.EvaluationException: java.lang.ClassCastException: de.sep.ateam.sap.norris.model.User cannot be cast to de.sep.ateam.sap.norris.model.User 
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101) 
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) 
    at javax.faces.component.UICommand.broadcast(UICommand.java:315) 
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) 
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) 
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) 
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) 
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) 
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188) 
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191) 
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168) 
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189) 
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114) 
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) 
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838) 
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544) 
    at java.lang.Thread.run(Thread.java:744) 
Caused by: java.lang.ClassCastException: de.sep.ateam.sap.norris.model.User cannot be cast to de.sep.ateam.sap.norris.model.User 
    at de.sep.ateam.sap.norris.controller.beans.LoginBean.doLogin(LoginBean.java:50) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at javax.el.ELUtil.invokeMethod(ELUtil.java:326) 
    at javax.el.BeanELResolver.invoke(BeanELResolver.java:536) 
    at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:256) 
    at com.sun.el.parser.AstValue.invoke(AstValue.java:269) 
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304) 
    at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) 
    at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) 
    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) 
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87) 
    ... 35 more 
+2

कृपया, अपने अपवाद स्टैक ट्रेस दिखाएं। – Masudul

+0

@ राकेश: पुस्तकालय/ढांचे/उत्पाद नाम जैसे "जेएसएफ" और "ग्लासफ़िश" ** ** कोड नहीं हैं। सुझाए गए संपादन में कोड के रूप में उन्हें स्वरूपित करना बंद करें। – BalusC

+0

के लिए प्रयास करें (ऑब्जेक्ट यू: उपयोगकर्ता) {उपयोगकर्ता उपयोगकर्ता = (उपयोगकर्ता) यू; ..... –

उत्तर

0

मैं एक ऐसी ही समस्या थी क्योंकि मैं serializing था वर्गों और टी उन्होंने धारावाहिक संस्करणों को कक्षाओं के अद्यतन के बाद deserialized नहीं किया जा सकता था और कंटेनर को पुनरारंभ किए बिना ऐप को पुनरारंभ किया गया था।

+0

आपने इसे कैसे ठीक किया? मैं कक्षाओं को भी क्रमबद्ध कर रहा हूं – Yakaryo

+0

हमने 'निजी स्थिर अंतिम लंबी धारावाहिक VERSIONUID = 1L;' जैसी चीजों का उपयोग किया और जब हम जानते थे कि यह deserialization तोड़ देगा और कभी-कभी उद्देश्य पर कैश को भी नष्ट कर देगा। इसके अलावा, हमारे पास एकाधिक कैशिंग रणनीतियों हैं, लेकिन उनमें से एक कंटेनर (टोमकैट) द्वारा चलाया जा रहा था जिसे हमने देव उदाहरणों पर बंद कर दिया था (जहां हम कंटेनर को पुनरारंभ किए बिना ऐप्स अपडेट करते हैं) और उत्पादन के लिए तैनाती पर एक कंटेनर पुनरारंभ नीति है। ओह, कभी-कभी कंटेनर जब किसी ऐप को रीबूट करने में कक्षाओं को प्रतिस्थापित करना मुश्किल होता है क्योंकि यह पुन: नियोजन पर कुछ वर्ग को अनलोड नहीं कर सकता है। – austin

0

आमतौर पर ऐसा होता है जब एक अलग वर्ग लोडर में एक ही जार के एक से अधिक उदाहरण होते हैं। अधिकांश ऐप सर्वरों में ग्लोबल क्लास लोडर और एक वेब-ऐप विशिष्ट क्लास लोडर होता है (कुछ में कॉन्ट्रिब आदि जैसे अन्य भी होते हैं)। यदि खाद्य श्रृंखला में जो वर्ग लोडर ऊपर है, वह वर्ग पहले से परिभाषित है और इसे निम्न स्तर के वर्ग लोडर द्वारा फिर से परिभाषित किया जाता है, इस प्रकार की स्थिति हो सकती है (एक अलग वर्ग लोडर में एक ही कक्षा को अलग माना जाता है, भले ही इसकी परिभाषा है वही)। जार लोड होने पर/कैसे आदेश की गारंटी नहीं है जो समझा सकता है कि आप कभी-कभी त्रुटि क्यों देखते हैं और कभी-कभी नहीं करते हैं। लंबी कहानी छोटी है, सुनिश्चित करें कि आपने पहले से ही जार को तैनात नहीं किया है जिसमें सर्वर में कहीं और इस वर्ग को शामिल किया गया है जो आपके वेब ऐप पर दिखाई दे रहा है।

+0

मुझे अभी भी त्रुटि मिल रही है ... – Yakaryo

3

यदि आप सुनिश्चित हैं कि आपके पास एप्लिकेशन सर्वर में लोड की गई एक ही कक्षा के एकाधिक संस्करण नहीं हैं, तो आप सर्वर कैश को रीसेट करने का प्रयास कर सकते हैं।

इस चरणों का पालन करें:

  1. undeploy आवेदन;
  2. एप्लिकेशन सर्वर को रोकें;
  3. अपने एप्लिकेशन सर्वर के osgi कैश फ़ोल्डर को हटाएं। अर्थात। यदि आप ग्लासफ़िश का उपयोग कर रहे हैं, तो यह फ़ोल्डर है: ई: \ ग्लासफ़िश-3.1.2.2 \ ग्लासफ़िश \ डोमेन \ डोमेन 1 \ osgi-cache
  4. सर्वर को पुनरारंभ करें;
  5. एप्लिकेशन को तैनात करें।
1

मैं एक ही मुद्दा था, और मैं अंत में java.net पर एक समाधान पाया: WEB-INF/lib करने के लिए glassfish4/glassfish/modules से

कॉपी सभी org.eclipse.persistence jar files। फिर अपने ग्लासफ़िश-वेब.एक्सएमएल में जाएं, और class-delegate से false पर सेट करें।

मेरे लिए काम किया!

+0

मेरे मामले में यह केवल org.eclipse.persistence.core.jar और org.eclipse.persistence.jpa.jar को वेब-आईएनएफ/lib में जोड़ने के लिए पर्याप्त था –

संबंधित मुद्दे