2015-01-03 10 views
9

नहीं मिल सका, मैं इसका प्रस्ताव दूंगा, मैं किसी भी मेवेन निर्भरता का उपयोग नहीं कर रहा हूं, फिर भी मुझे पता है कि मुझे एक जार फ़ाइल wls-api.jar (कम से कम यही मैंने पढ़ा है) खो रहा है।वेबसाइटसेट क्लाइंट को कार्यान्वयन कक्षा

इसका समाधान करने के लिए मैंने oracle-weblogic-7.9.jar डाउनलोड किया लेकिन समस्या बनी रहती है।

अपवाद इस लाइन पर फेंक दिया जाता है

WebSocketContainer container = ContainerProvider.getWebSocketContainer(); 

किसी को भी मुझे बता सकते हैं क्यों इस लाइन लगातार विफल रहता है?

अद्यतन: आगे उदाहरण पढ़ने पर मैं इस निर्भरता

<dependency> 
<groupId>javax.websocket</groupId> 
<artifactId>javax.websocket-api</artifactId> 
<version>1.0</version> 

का उपयोग करके देख मैं सर्वर और ग्राहक के निर्माण के रास्ते में javax.websocket-api.jar है के रूप में यह आवश्यक है। मुझे यहां क्या समझ नहीं आ रहा है?

अन्य अपडेट: मैं फेंकने वाली त्रुटि को शामिल करना भूल गया!

Exception in thread "main" java.lang.RuntimeException: Could not find an implementation class. 
at javax.websocket.ContainerProvider.getWebSocketContainer(ContainerProvider.java:73) 
at connect.<init>(connect.java:21) 
at test.main(test.java:11) 
+0

कोड फेंकने का क्या अपवाद है? तथ्य यह है कि आप एक निर्भरता खो रहे हैं अभी भी एक समस्या हो सकती है। –

+0

इसके बारे में क्षमा करें, मैंने कुछ और जानकारी के साथ-साथ अपवाद फेंकने के लिए अपना प्रश्न अपडेट कर दिया है! –

उत्तर

17

javax.websocket api केवल विनिर्देशन में पूर्ण कार्यान्वयन नहीं है, आपको जार फ़ाइल tyrus-standalone-client-1.9.jar लेने की आवश्यकता हो सकती है और उसी समस्या का प्रयास करें जो आपकी समस्या का समाधान करे। मैंने अपने उदाहरण के साथ परीक्षण किया और यह ठीक काम कर रहा है।

आशा है कि यह आपकी मदद करेगा।

+0

से कनेक्ट करने के लिए बेहतर भाग्य होगा दुर्भाग्यवश आप सही हैं, मैं जो कर रहा हूं वह एक वेबपृष्ठ बना रहा था जो क्लाइंट के रूप में कार्य करने के लिए जावास्क्रिप्ट का उपयोग करता है। मेरे पास Autobahn websockets एपीआई का उपयोग करके एक फोन एप्लिकेशन भी है जिसका उपयोग क्लाइंट के रूप में किया जा सकता है। –

1

मुझे लगता है कि RuntimeException आप अनुभव कर रहे सौभाग्य से अपना खुद का कोई सीधा कोडिंग गलती द्वारा उत्पन्न नहीं है।

विधि getWebSocketContainer(), वर्णित here के रूप में, बस सर्वर में अन्य वर्गों लोड और ContainerProvider के स्थिर उदाहरण पाने के लिए कोशिश करता है।

विधि META-INF/services/javax.websocket.ContainerProvider फ़ाइल में सूचीबद्ध क्रम में ContainerProvider कार्यान्वयन वर्ग के लिए लग रहा है, ContainerProvider कार्यान्वयन कि null नहीं है से WebSocketContainer कार्यान्वयन लौटने।

दुर्भाग्यवश, इसका मतलब है कि आपकी परियोजना सही तरीके से कॉन्फ़िगर नहीं है। यह सुनिश्चित करने के लिए दो बार जांचें कि यह फ़ाइल आपके प्रोजेक्ट के निर्माण पथ में शामिल है।

यदि आप जिन अन्य परियोजनाओं को देख रहे हैं, वे आपके द्वारा वर्णित मेवेन निर्भरता का उपयोग कर रहे हैं, तो मैं ऐसा करने के लिए अपनी परियोजना को स्थापित करने का प्रयास करूंगा।

आशा है कि इससे मदद मिलेगी!

+0

बिल्ड पथ में मेरे पास javax.websocket-api-1.1.jar है क्या मुझे इसे lib फ़ोल्डर में भी रखना है? मैं इस जार को बता सकता हूं कि कंटेनरप्रोवाइडर –

+0

मुझे नहीं लगता कि lib फ़ोल्डर कुछ मानक है, लेकिन इसे आजमाएं और देखें कि यह काम करता है या नहीं। –

+0

मैंने कुछ और परियोजनाएं स्थापित की हैं और हमेशा एक ही अपवाद प्राप्त करें –

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