RESTEasy на пристани с Maven - java.lang.ClassNotFoundException - PullRequest
0 голосов
/ 17 марта 2012

У меня проблема при развертывании простого WebService с использованием RESTEasy на Jetty с maven.Когда я набираю mvn jetty: run, я получаю следующие ошибки:

2012-03-17 03:14:28.199:WARN::Failed startup of context org.mortbay.jetty.plugin.Jetty6PluginWebAppContext@2cd728{/DogsOnShows,/home/filip/jee/jeeWorkspace/DogsOnShows/src/main/webapp}
java.lang.RuntimeException: java.lang.ClassNotFoundException: com.fd.dos.EchoService
at org.jboss.resteasy.spi.ResteasyDeployment.registration(ResteasyDeployment.java:381)
at org.jboss.resteasy.spi.ResteasyDeployment.start(ResteasyDeployment.java:225)
at org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap.contextInitialized(ResteasyBootstrap.java:28)
at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:549)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
at org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:115)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.plugin.AbstractJettyRunMojo.restartWebApp(AbstractJettyRunMojo.java:458)
at org.mortbay.jetty.plugin.AbstractJettyRunMojo$1.filesChanged(AbstractJettyRunMojo.java:419)
at org.mortbay.util.Scanner.reportBulkChanges(Scanner.java:486)
at org.mortbay.util.Scanner.reportDifferences(Scanner.java:352)
at org.mortbay.util.Scanner.scan(Scanner.java:280)
at org.mortbay.util.Scanner$1.run(Scanner.java:232)
at java.util.TimerThread.mainLoop(Timer.java:534)
at java.util.TimerThread.run(Timer.java:484)

На самом деле этот класс "EchoService" не компилируется или, по крайней мере, так кажется.Я не могу найти его в папке target / classes.Когда я нажимаю на адрес WebService в браузере, я получаю HTTP 503: SERVICE_UNAVAILABLE.Я использую RESTEasy 2.3.1.GA и Jetty 8.1

Это мой pom.xml:

<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>com.fd</groupId>
<artifactId>DogsOnShows</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>DogsOnShows Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
    <resteasy.version>2.3.1.GA</resteasy.version>
</properties>
<repositories>
    <repository>
        <id>jboss</id>
        <url>http://repository.jboss.org/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>${resteasy.version}</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>jaxrs-api</artifactId>
        <version>${resteasy.version}</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxb-provider</artifactId>
        <version>${resteasy.version}</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-jaxrs</artifactId>
        <version>1.8.0</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jettison</groupId>
        <artifactId>jettison</artifactId>
        <version>1.3</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jettison-provider</artifactId>
        <version>${resteasy.version}</version>
        <scope>compile</scope>
    </dependency>
</dependencies>
<build>
    <finalName>DogsOnShows</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>maven-jetty-plugin</artifactId>
            <version>6.1.26</version>
            <configuration>
                <scanIntervalSeconds>10</scanIntervalSeconds>
                <scanTargets>
                </scanTargets>
            </configuration>
        </plugin>
    </plugins>
</build>

и web.xml:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="WebApp_ID"
version="2.5">
<display-name>Archetype Created Web Application</display-name>
<display-name>Resteasy Application</display-name>
<context-param>
    <param-name>resteasy.resources</param-name>
    <param-value>com.fd.dos.EchoService</param-value>
</context-param>

<listener>
    <listener-class>
        org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
    </listener-class>
</listener>

<servlet>
    <servlet-name>Resteasy</servlet-name>
    <servlet-class>
        org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
    </servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Resteasy</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

Редактировать:

com.fd.dos.EchoService class:

@Path("/")
public class EchoService {
   @GET
   @Path("/echo/{message}")
   @Produces({MediaType.APPLICATION_JSON, "application/*+json"})
   public Response echoService(@PathParam("message") String message) {
      return Response.status(200).entity(message).build();
   }
}

Я буду очень благодарен за любую подсказку.Заранее спасибо.

...