Sto seguendo questo tutorial per creare il mio web service rest:

http://www.vogella.com/articles/REST/article.html

ma mi sono scontrato con un'eccezione che non riesco a risolvere nemmeno googlandola...

codice:
GRAVE: StandardWrapper.Throwable java.lang.NoSuchMethodError: javax.ws.rs.Path.encode()Z 	at com.sun.jersey.impl.modelapi.annotation.IntrospectionModeller.createResource(IntrospectionModeller.java:97) 	at
com.sun.jersey.impl.application.WebApplicationImpl.getAbstractResource(WebApplicationImpl.java:291) 	at
com.sun.jersey.impl.application.WebApplicationImpl.processRootResources(WebApplicationImpl.java:720) 	at
com.sun.jersey.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:609) 	at
com.sun.jersey.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:472) 	at 
com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:541) 	at 
com.sun.jersey.spi.container.servlet.ServletContainer.load(ServletContainer.java:465) 	at 
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:147) 	at 
org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1189) 	at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1103) 	at 
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1010) 	at 
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4935) 	at 
org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5262) 	at 
org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5257) 	at 
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 	at 
java.util.concurrent.FutureTask.run(FutureTask.java:138) 	at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 	at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 	at 
java.lang.Thread.run(Thread.java:662) 18-lug-2012 13.54.33 
org.apache.catalina.core.StandardContext loadOnStartup 
GRAVE: Servlet /rest-service threw load() exception java.lang.NoSuchMethodError: javax.ws.rs.Path.encode()Z 	at 
com.sun.jersey.impl.modelapi.annotation.IntrospectionModeller.createResource(IntrospectionModeller.java:97) 	at 
com.sun.jersey.impl.application.WebApplicationImpl.getAbstractResource(WebApplicationImpl.java:291) 	at 
com.sun.jersey.impl.application.WebApplicationImpl.processRootResources(WebApplicationImpl.java:720) 	at 
com.sun.jersey.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:609) 	at 
com.sun.jersey.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:472) 	at 
com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:541) 	at 
com.sun.jersey.spi.container.servlet.ServletContainer.load(ServletContainer.java:465) 	at 
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:147) 	at 
org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1189) 	at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1103) 	at 
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1010) 	at 
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4935) 	at 
org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5262) 	at 
org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5257) 	at 
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 	at 
java.util.concurrent.FutureTask.run(FutureTask.java:138) 	at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 	at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 	at 
java.lang.Thread.run(Thread.java:662)
Il web.xml è:

codice:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">   
 <display-name>rest-service</display-name>   
  <servlet>     
   <servlet-name>Jersey REST Service</servlet-name>     
   <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>     
   <init-param>       
    <param-name>com.sun.jersey.config.property.packages</param-name>
    <param-value>restService</param-value>     
   </init-param>     
   <load-on-startup>1</load-on-startup>   
  </servlet>   
  <servlet-mapping>     
   <servlet-name>Jersey REST Service</servlet-name>     
   <url-pattern>/rest/*</url-pattern>   
  </servlet-mapping> 
</web-app>
mentre la mia classe java:

codice:
package restService;  
import javax.ws.rs.GET; import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType;  

@Path("/hello") 
public class Hello {  	

 // This method is called if TEXT_PLAIN is request 	
 @GET 	
 @Produces(MediaType.TEXT_PLAIN) 	
 public String sayPlainTextHello() { 		
  return "Hello Jersey"; 	
 }  	

 // This method is called if XML is request 	
 @GET 	
 @Produces(MediaType.TEXT_XML) 	
 public String sayXMLHello() { 		
  return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" + "</hello>"; 	
 }  	

 // This method is called if HTML is request 	
 @GET 	
 @Produces(MediaType.TEXT_HTML) 	
 public String sayHtmlHello() { 		
  return "<html> " + "<title>" + "Hello Jersey" + "</title>" + "<body><h1>" + "Hello Jersey" + "</body></h1>" + "</html> "; 	
 }  
}
Guardando bene l'eccezione:

GRAVE: Servlet /rest-service threw load() exception java.lang.NoSuchMethodError: javax.ws.rs.Path.encode()Z

potrebbe essere che manchi il metodo encode nella classe Path (ed è così, perchè aprendo la library non c'è) ma ciò che mi preoccupa di più è quella Z dopo.
Non capisco se ho sbagliato library (javax.ws.rs-api 2.0-m09) o se me ne manca qualcuna

Se qualcuno ha qualche idea....