2015-01-03 10 views
9

uygulama sınıfı bulamadım. Buna, maven bağımlılıkları kullanmıyorum ile başlayacağım; ancak, wls-api.jar bir jar dosyası eksik olduğumu biliyorum (en azından okuduğum şey budur).Websocket İstemcisi

Bunu düzeltmek için oracle-weblogic-7.9.jar karşıdan yükledim ancak sorun devam ediyor.

istisna bu satırda atılır

WebSocketContainer container = ContainerProvider.getWebSocketContainer(); 
bu hat sürekli başarısız neden

kimse bana söyleyebilir misiniz?

GÜNCELLEME: başka örnekler okunması üzerine ben gerekli olduğu gibi sunucu ile istemci yapı yolundaki javax.websocket-api.jar sahip bu bağımlılığı

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

kullandıklarını görüyoruz. Burada neyi özlüyorum?

Diğer güncelleme: Atılan hatayı eklemeyi unuttum!

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

Kod ne tür bir istisna atar? Bir bağımlılığı kaçırdığın gerçeği hala bir problem olabilir. –

+0

Maalesef, sorumu atılan istisnaların yanı sıra bazı daha fazla bilgi içerecek şekilde güncelledim! –

cevap

17

javax.websocket api yalnızca teknik özelliklerin tam olduğunu bilmiyorsanız, jar dosyası tyrus-standalone-client-1.9.jar dosyasını almanız gerekebilir ve sorununuzu çözmesi gereken aynı örneği deneyin. Örneğimle test ettim ve gayet iyi çalışıyor.

Bunun size yardımcı olacağını umuyorum.

+0

Ne yazık ki haklısın, yaptığım şey müşteri olarak davranmak için javascript kullanan bir web sayfası yapmaktı. Ayrıca müşteri olarak kullanılabilecek Autobahn websockets api kullanarak bir telefon uygulaması var. –

1

Ben RuntimeException karşılaştığınız neyse kendi herhangi bir doğrudan kodlama arızası tarafından oluşturulmaz düşünüyorum. Yalnızca here açıklandığı gibi getWebSocketContainer() yöntemi, yalnızca diğer sınıfları yüklemeyi ve sunucuda ContainerProvider statik örneğini almayı dener.

yöntem null değil ContainerProvider uygulanmasından WebSocketContainer uygulanmasını dönen, META-INF/services/javax.websocket.ContainerProvider dosyada listelenen sırada ContainerProvider uygulama sınıfı aranır.

Bu, ne yazık ki, projenizin doğru şekilde yapılandırılmadığı anlamına gelir. Bu dosyanın projenizin yapım yoluna dahil edildiğinden emin olmak için iki kez kontrol edin.

Baktığınız diğer projeler, anlattığınız Maven bağımlılığını kullanıyorsa, projenizi aynı şekilde yapmaya çalışacağım.

Bu yardımcı oldu umarım!

+0

Yapı yolunda javax.websocket-api-1.1.jar dosyası var. Bunu lib klasörüne koymalı mıyım? Bu kavanozdan ne söyleyebilirim ki ContainerProvider –

+0

içerdiğinden, lib klasörünün standart bir şey olduğunu düşünmüyorum, fakat deneyin ve çalışıp çalışmadığını görün. –

+0

Birkaç tane daha proje hazırladım ve her zaman aynı istisnaı aldım –