2016-03-22 12 views
6

के लिए सेट नहीं है मैं जेएसटी और वेल्ड सीडीआई के साथ जेटी को कॉन्फ़िगर करने की कोशिश कर रहा हूं। this मैनुअल पालन करने के बाद, मैं निम्नलिखित स्टैकट्रेस पर आते हैं:जेटी के साथ वेल्ड सीडीआई का उपयोग करके अपवाद: सिंगलटन STATIC_INSTANCE

Caused by: java.lang.IllegalStateException: Singleton not set for STATIC_INSTANCE => [] 
    at org.jboss.weld.bootstrap.api.helpers.RegistrySingletonProvider$RegistrySingleton.get(RegistrySingletonProvider.java:28) 
    at org.jboss.weld.Container.instance(Container.java:55) 
    at org.jboss.weld.SimpleCDI.<init>(SimpleCDI.java:77) 
    at org.jboss.weld.environment.WeldProvider$EnvironmentCDI.<init>(WeldProvider.java:45) 
    at org.jboss.weld.environment.WeldProvider.getCDI(WeldProvider.java:61) 
    at javax.enterprise.inject.spi.CDI.current(CDI.java:60) 
    at org.jboss.weld.servlet.WeldInitialListener.contextInitialized(WeldInitialListener.java:94) 
    at org.jboss.weld.servlet.api.helpers.ForwardingServletListener.contextInitialized(ForwardingServletListener.java:34) 
    at org.jboss.weld.environment.servlet.EnhancedListener.onStartup(EnhancedListener.java:65) 
    at org.eclipse.jetty.plus.annotation.ContainerInitializer.callStartup(ContainerInitializer.java:140) 
    at org.eclipse.jetty.annotations.ServletContainerInitializersStarter.doStart(ServletContainerInitializersStarter.java:63) 
    ... 50 more 

किसी को देखने करता गलत यहाँ क्या चल रहा है?

+0

क्या आपने '/ WEB-INF/beans.xml' फ़ाइल को ध्यान में रखा था? – BalusC

+0

यह मेरा वेब-आईएनएफ/बीन्स.एक्सएमएल है: <बीन्स xmlns = "http://xmlns.jcp.org/xml/ns/javaee "xmlns: xsi =" http://www.w3.org/2001/XMLSchema-instance " xsi: schemaLocation =" \t \t http://xmlns.jcp.org/xml/ns/javaee \t \t http : //xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd " बीन-डिस्कवरी-मोड =" सब "> –

+0

समस्या बताती है कि बीनमेनगर नहीं मिल सकता है। कौन सा जेटी संस्करण है? 9.2.4+ कॉन्फ़िगर करने का एक आसान तरीका प्रदान करता है: http://www.eclipse.org/jetty/documentation/current/framework-weld.html – BalusC

उत्तर

1

समस्या यह है कि आप अपने पोम में weld-servlet और weld-servlet-core दोनों का उपयोग कर रहे हैं। यह डुप्लिकेट क्लास प्रविष्टियों का कारण बन रहा है क्योंकि वेल्ड-सर्वलेट वेल्ड-सर्वलेट-कोर का कुल है। वेल्ड-सर्वलेट-कोर निर्भरता को हटाने से सिंगलटन ने त्रुटि सेट नहीं की है।

अब, जब मैंने ऐसा किया, तो मुझे जेएसएफ के बारे में त्रुटियां मिलीं लेकिन यह अन्य कॉन्फ़िगरेशन समस्याएं हो सकती हैं।

+0

में संक्रमण किया है, मुझे इस बिंदु पर मिला क्योंकि मुझे org.omnifaces.resourcehandler की आवश्यकता थी। बूटस्फेस के लिए कॉम्बिनेड रिसोर्स हैंडलर, इसलिए मैंने Omnifaces को जोड़ना शुरू कर दिया। फिर यह निकला कि मुझे सीडीआई चाहिए, इसलिए मैंने वेल्ड जोड़ा। अभी मैं वेल्ड, जेएसएफ, इत्यादि के लिए मिलान संस्करणों को खोजने का प्रयास करता हूं। तो मैं अपने परीक्षण धावक, जेटी-मेवेन-प्लगइन में काम करने के लिए कॉन्फ़िगरेशन प्राप्त कर सकता हूं। मैं वास्तव में विश्वास करना शुरू कर रहा हूं कि ऐसी कॉन्फ़िगरेशन बस अस्तित्व में नहीं है, क्योंकि मैं अन्य अपवादों में चल रहा हूं। क्या आप शायद "अन्य कॉन्फ़िगरेशन समस्याएं" देख सकते हैं? –

+0

यह भी देखें http://stackoverflow.com/questions/27666681/weld-001300-when-trying-to-lookup-beanmanager-by-jndi और https://github.com/skaterkamp/streichelzoo-faces/blob/master /streichelzoo-site-webapp/pom.xml#L174 –

3

यह त्रुटि तब दिखाई देती है जब आप beans.xml फ़ाइल भूल जाते हैं या, जैसा कि मेरे मामले में, आपने इसे गलत जगह में रखा है। आपके beans.xml में केवल रूट तत्व हो सकता है लेकिन अस्तित्व में होना चाहिए।

एक Maven परियोजना के लिए याद रखें कि:

  • context.xml shoud src/main/webapp/META-INF/
  • beans.xml में रहने src/main/resources/META-INF/

में रहना चाहिए जब मैं ले जाया गया एक आवेदन Glassfish का उपयोग करके विकसित मैं इस समस्या थी (इन फ़ाइलों की आवश्यकता नहीं है) टॉमकैट 7।

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