Hi Dario,
you need to specify your root resource classes.
The easiest way is to leverage the Jersey's package scanning mechanism.
You just need to use the following Servlet parameter in your web.xml:
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>your.package.with.resource.classes.goes.here</param-value>
</init-param>
See [1] for some more information related to the matter.
Also
HTH,
~Jakub
[1]
http://jersey.java.net/nonav/documentation/latest/getting-started.html#d4e60
On 05/25/2011 12:40 PM, Dário Abdulrehman wrote:
> I added the jersey-server-module dependency.
> Here is my pom:
>
>
>
> <project xmlns="http://maven.apache.org/POM/4.0.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/maven-v4_0_0.xsd">
> <modelVersion>4.0.0</modelVersion>
> <groupId>sdlink</groupId>
> <artifactId>sparql</artifactId>
> <packaging>war</packaging>
> <version>1.0-SNAPSHOT</version>
> <name>sparql Java EE 6 Webapp</name>
> <url>http://maven.apache.org</url>
> <repositories>
> <repository>
> <id>java.net2</id>
> <name>Repository hosting the jee6 artifacts</name>
> <url>http://download.java.net/maven/2</url>
> </repository>
> </repositories>
> <dependencies>
> <dependency>
> <groupId>us.monoid.web</groupId>
> <artifactId>resty</artifactId>
> <version>0.2.0</version>
> </dependency>
> <dependency>
> <groupId>commons-httpclient</groupId>
> <artifactId>commons-httpclient</artifactId>
> <version>20020423</version>
> </dependency>
> <dependency>
> <groupId>commons-lang</groupId>
> <artifactId>commons-lang</artifactId>
> <version>2.5</version>
> </dependency>
> <dependency>
> <groupId>com.sun.jersey</groupId>
> <artifactId>jersey-server</artifactId>
> <version>1.7-ea07</version>
> </dependency>
> <dependency>
> <groupId>javax</groupId>
> <artifactId>javaee-web-api</artifactId>
> <version>6.0</version>
> <scope>provided</scope>
> </dependency>
>
> <dependency>
> <groupId>junit</groupId>
> <artifactId>junit</artifactId>
> <version>3.8.2</version>
> <scope>test</scope>
> </dependency>
>
> </dependencies>
> <build>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-compiler-plugin</artifactId>
> <version>2.0.2</version>
> <configuration>
> <source>1.6</source>
> <target>1.6</target>
> </configuration>
> </plugin>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-war-plugin</artifactId>
> <version>2.1-beta-1</version>
> <configuration>
> <failOnMissingWebXml>false</failOnMissingWebXml>
> </configuration>
> </plugin>
> <plugin>
> <groupId>org.mortbay.jetty</groupId>
> <artifactId>maven-jetty-plugin</artifactId>
> <version>6.1.24</version>
> <configuration>
> <webApp>${basedir}/target/sparql.war</webApp>
> <contextPath>sparql</contextPath>
> </configuration>
> </plugin>
> </plugins>
> <finalName>sparql</finalName>
> </build>
> <profiles>
> <profile>
> <id>endorsed</id>
> <activation>
> <property>
> <name>sun.boot.class.path</name>
> </property>
> </activation>
> <build>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-compiler-plugin</artifactId>
> <version>2.0.2</version>
> <configuration>
> <!-- javaee6 contains upgrades of APIs
> contained within the JDK itself.
> As such these need to be placed on
> the bootclasspath, rather than classpath of the
> compiler.
> If you don't make use of these new
> updated API, you can delete the profile.
> On non-SUN jdk, you will need to
> create a similar profile for your jdk, with the similar property as
> sun.boot.class.path in Sun's JDK.-->
> <compilerArguments>
>
> <bootclasspath>${settings.localRepository}/javax/javaee-endorsed-api/6.0/javaee-endorsed-api-6.0.jar${path.separator}${sun.boot.class.path}</bootclasspath>
> </compilerArguments>
> </configuration>
> <dependencies>
> <dependency>
> <groupId>javax</groupId>
> <artifactId>javaee-endorsed-api</artifactId>
> <version>6.0</version>
> </dependency>
> </dependencies>
> </plugin>
> </plugins>
> </build>
> </profile>
> </profiles>
>
> </project>
>
>
>
> Now starting jetty issues the following:
>
>
> SEVERE: The ResourceConfig instance does not contain any root resource classes.
> 2011-05-25 11:35:06.876:WARN:/sparql:unavailable
> com.sun.jersey.api.container.ContainerException: The ResourceConfig
> instance does not contain any root resource classes.
> at com.sun.jersey.server.impl.application.RootResourceUriRules.<init>(RootResourceUriRules.java:99)
> at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1299)
> .....
>
>
>
>
>
> On Wed, May 25, 2011 at 7:20 AM, Jakub Podlesak
> <jakub.podlesak_at_oracle.com> wrote:
>> Hi Dario,
>>
>> On 05/24/2011 06:36 PM, Dário Abdulrehman wrote:
>>> I added the maven-jetty-plugin to the pom as in your example but I get
>>> an error when running mvn jetty:run:
>>>
>>> java.lang.ClassNotFoundException:
>>> com.sun.jersey.spi.container.servlet.ServletContainer
>> This class is from the jersey-server module. Do you have
>> the following dependency defined in your pom?
>> The ${jersey.version} refers to the actual Jersey version
>> you want to use...
>>
>> <dependency>
>> <groupId>com.sun.jersey</groupId>
>> <artifactId>jersey-server</artifactId>
>> <version>${jersey.version}</version>
>> <scope>compile</scope>
>> </dependency>
>>
>> ?
>>
>> The best would be if you could send out your pom file
>> to the list, so that others could review.
>>
>> ~Jakub
>>
>>> Also I added the configuration manually to the pom. If I add the
>>> dependency through netbeans Libraries -> Add dependency it adds the
>>> plugin as a<dependency></dependency> and not as a<plugin></plugin>.
>>> I don't know if this is important.
>>>
>>> On Tue, May 24, 2011 at 4:01 PM, Pavel Bucek<pavel.bucek_at_oracle.com>
>>> wrote:
>>>> Hello,
>>>>
>>>> yes, it is possible, see helloworld-webapp sample [1] and execute mvn
>>>> clean
>>>> package jetty:run.
>>>>
>>>> Jetty:run doesn't work out of the box, it must be configured, see pom
>>>> file
>>>> of that sample.
>>>>
>>>> Regards,
>>>> Pavel
>>>>
>>>> [1]
>>>>
>>>> http://download.java.net/maven/2/com/sun/jersey/samples/helloworld-webapp/1.7/helloworld-webapp-1.7-project.zip
>>>>
>>>> On 5/24/11 4:56 PM, Dário Abdulrehman wrote:
>>>>> I would include some services in a VM but glassfish is very big and I
>>>>> would like to keep the VM as small as possible.
>>>>> Is it possible to deploy the web services on the Jetty web server?
>>>>>
>>>>> I tried to add jetty to the project dependencies and then running mvn
>>>>> jetty:run but I get a
>>>>> [ERROR] No plugin found for prefix 'jetty' in the current project and
>>>>> in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] ...
>>>>>
>>>>>
>>>>> Is it possible to deploy a Jersey web services on Jetty?
>>>>>
>>>>> Thanks.
>>>>>
>>