2013-06-07 13 views
10

Merhaba Jersey 2.0 için Getting Started guide takip etmeye çalışıyorum.Jersey 2.0 "Başlarken" kılavuzu, mainClass bulunamadı

Adım 1.1 ve 1.2'yi yaptım. Orada sorun yok.

Adım 1.3 için, bir problemim vardı, çünkü maven, javax-notu 1.2'yi bulamıyordu ancak of another Stackoverflow user numaralı tavsiyeyi izleyerek çözdüm ve pompamıza bir depo ekledim.

Yani mvn clean test hiçbir sorunları ile geçer ANCAK ben mvn clean exec:java çalıştırmayı denediğimde pom.xml aşağıdaki komutla yarattığı biridir geri

[WARNING] java.lang.ClassNotFoundException: com.example.Main 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:285) 
at java.lang.Thread.run(Thread.java:722) 

olsun:

mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 \ 
-DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false \ 
-DgroupId=com.example -DartifactId=simple-service -Dpackage=com.example \ 
-DarchetypeVersion=2.0 

yalnızca yapılan ek, aşağıdaki gibidir:

<repositories> 
    <repository> 
    <id>java.net.repo</id> 
    <url>https://maven.java.net/content/groups/promoted/</url> 
    <layout>default</layout> 
    </repository> 
</repositories> 

durumda bu senin hatayı yeniden mümkün duyuyorum mvn -version

Apache Maven 3.0.4 (r1232337; 2012-01-17 10:44:56+0200) 
Maven home: /usr/share/maven 
Java version: 1.7.0_21, vendor: Oracle Corporation 
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home/jre 
Default locale: el_GR, platform encoding: UTF-8 
OS name: "mac os x", version: "10.8.3", arch: "x86_64", family: "mac" 
+1

Eğer 'Main' adında bir sınıf var mı? –

+0

yeap, varsayılan olarak maven tarafından src/main/java/com/example altında oluşturulmuştur. Aslına bakarsanız, otomatik olarak Main.java ve MyResource.java'yı (kullanıcı kılavuzunda açıklanmıştır) yaratılan iki sınıf vardır: – user2465039

cevap

20

çıktısı olan ilgi çekicidir. Bunun Jersey ile hiçbir ilgisi yok; Maven ile yaptığınız bir hata. mvn clean exec:java diyor ki: ".class dosyalarını silin ve sonra Main .class dosyasını çalıştırmayı deneyin". Sildiğinizden beri, Maven bulamıyor. İşte bir çözüm: Sorunuzdaki sorunu çözmeniz gerekir. Bunun istemci bağımlılığından <scope>test</scope> satırı silin,

göreceksiniz sonraki hata aşmak için "Main Class dosyasını çalıştırmayı deneyin, tüm .class dosyaları silmek kaynaktan bunları yeniden derlemek ve" diyor pom.xml:

<dependency> 
    <groupId>org.glassfish.jersey.core</groupId> 
    <artifactId>jersey-client</artifactId> 
    <scope>test</scope> 
</dependency> 

için:

<dependency> 
    <groupId>org.glassfish.jersey.core</groupId> 
    <artifactId>jersey-client</artifactId> 
</dependency> 
+1

Teşekkürler. Ben maven hakkında bilmiyorum, ama exec: java derlemeye bağlı olacağını varsayalım. Ancak, her durumda, pom.xml 'den kapsamı kaldırılsa bile, şimdi bir grup java.lang.NoClassDefFoundError: org/glassfish/jersey/client/ClientConfig. Ben jersey başlıyor kılavuzu başlıyor :-) – user2465039

+0

@ user2465039 cevabın altını okuyun. Bunu nasıl düzelteceğimizi gösterir. –

+0

Teşekkürler! Yanlış kapsamı kaldırmıştı :-) Birisi kılavuzu güncellemek gerekiyor. Size oy verdim ama burada yeterince puan yok :-) – user2465039