Jersey 2.0“入门”指南,找不到mainClass

嗨,我正在尝试按照Jersey 2.0的入门指南 。

我按原样执行了步骤1.1和1.2。 没问题。

对于步骤1.3,我有一个问题,因为maven找不到javax-annotation 1.2但是我按照另一个Stackoverflow用户的建议解决了它,并在我的pom中添加了一个存储库。

所以mvn clean test通过没有问题,但是当我尝试运行mvn clean exec:java我回来了

 [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) 

pom.xml是由以下命令创建的:

 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 

我唯一的补充是:

   java.net.repo https://maven.java.net/content/groups/promoted/ default   

在感兴趣的情况下,这是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" 

我能够重现你的错误。 这跟泽西没什么关系; 这是你用Maven制作的一个错误。 mvn clean exec:java说:“删除所有.class文件,然后尝试运行Main .class文件”。 由于你删除了它,Maven找不到它。 这是一个解决方案:

 mvn clean compile exec:java 

这应该可以解决您问题中的问题。 这说“删除所有.class文件,从源代码重新编译它们,然后尝试运行Main .class文件”

要了解您将看到的下一个错误,请从pom.xml中的客户端依赖项中删除test行:

  org.glassfish.jersey.core jersey-client test  

至:

  org.glassfish.jersey.core jersey-client