2015-09-08 3 views
1

Привет, я попытался создать веб-службу REST с использованием джерси 1.8. Я запускаю его на сервере. и сервер успешно запущен. но запросы не попадают в класс обслуживания. браузер показывает ошибку 404. мой web.xml являетсяweb.xml для сервлетов джерси, не отвечающих на запрос

<?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 
    <display-name>MavenSample</display-name> 
    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 
    <servlet> 
    <servlet-name>jersey</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>java.com.mine.rest.HelloWorldServices</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>jersey</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 


</web-app> 

и мой отдых класс обслуживания

package com.mine.rest; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.PathParam; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.Response; 

@Path("service") 
public class HelloWorldServices { 

    @GET 
    @Path("hello") 
     @Produces("text/html") 
     public Response getLocalCust() { 

       String output = "Hello marvel , welcome to Rest Web service "; 
       return Response.status(200).entity(output).build(); 
     } 



} 

моего 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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>MavenSample</groupId> 
    <artifactId>MavenSample</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.3</version> 
     <configuration> 
      <warSourceDirectory>WebContent</warSourceDirectory> 
      <failOnMissingWebXml>false</failOnMissingWebXml> 
     </configuration> 
     </plugin> 
     <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.1</version> 
     <configuration> 
      <source>1.7</source> 
      <target>1.7</target> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 

      <dependencies> 
       <dependency> 
        <groupId>com.sun.jersey</groupId> 
        <artifactId>jersey-server</artifactId> 
        <version>1.8</version> 
       </dependency> 
      </dependencies> 

</project> 

Пожалуйста, помогите мне решить эту проблему. Заранее спасибо.

ответ

1

java.com.mine.rest.HelloWorldServices не является пакетом. Значение свойства int web.xml должно быть com.mine.rest.

<init-param> 
    <param-name>com.sun.jersey.config.property.packages</param-name> 
    <param-value>com.mine.rest</param-value> 
</init-param> 

Это будет сканировать все классы в пакете com.mine.rest и его суб-пакеты для всех классов ресурсов, снабженных @Path

+0

Хай, спасибо за уры поддержки. я изменил свой web.xml на com.sun.jersey.config.property.packages com.mine.rest, но все еще проблема живая ... –

+0

http: // localhost: 8080/MavenSample/rest/service/hello this is Я использую –

+0

Если вы не установите '' в '', возможно, ваша война будет построена с суффиксом версии MavenSample-0.0.1-SNAPSHOT'. Поэтому версия должна быть частью URL-адреса. Попробуйте добавить ' $ {project.artifactId} ' внутри '' в вашем pom –

Смежные вопросы