2017-10-22 1 views
1

Java + Eclipse + Tomcat 8.5 + Maven을 사용하여 저지 REST 응용 프로그램 (helloworld)을 만들었습니다. 정적 index.html 서버에서 프로젝트를 실행할 때 잘 작동합니다. 그러나 404jaxrs + apache + eclipse로 나머지 api를 얻는 동안 404 반환 됨 정적 index.html은 정상적으로 작동합니다.

REST API를 안녕하세요 세계 최고 수준을 제공, 나머지 엔드 포인트 : -

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

    @GET 
    @Produces(MediaType.TEXT_HTML) 
    public String sayHtmlHello() { 
     return "Hello from Jersey"; 
    } 
} 

나머지 설정 클래스 : -

@ApplicationPath("/api") 
public class RESTConfig extends Application { 

} 

의 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.nagendrahegde</groupId> 
    <artifactId>therestproject</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>therestproject Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.core</groupId> 
      <artifactId>jersey-client</artifactId> 
      <version>2.26</version> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.core</groupId> 
      <artifactId>jersey-server</artifactId> 
      <version>2.26</version> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.core</groupId> 
      <artifactId>jersey-common</artifactId> 
      <version>2.26</version> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.containers</groupId> 
      <artifactId>jersey-container-servlet</artifactId> 
      <version>2.26</version> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.containers</groupId> 
      <artifactId>jersey-container-servlet-core</artifactId> 
      <version>2.26</version> 
     </dependency>  
     <dependency> 
      <groupId>org.apache.tomcat</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>6.0.53</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.oltu.oauth2</groupId> 
      <artifactId>org.apache.oltu.oauth2.client</artifactId> 
      <version>1.0.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.google.code.gson</groupId> 
      <artifactId>gson</artifactId> 
      <version>2.3.1</version> 
     </dependency> 
     <dependency> 
      <groupId>com.auth0</groupId> 
      <artifactId>java-jwt</artifactId> 
      <version>3.2.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.googlecode.jsontoken</groupId> 
      <artifactId>jsontoken</artifactId> 
      <version>1.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.bundles.repackaged</groupId> 
      <artifactId>jersey-guava</artifactId> 
      <version>2.6</version> 
     </dependency> 
    </dependencies> 
    <build> 
     <finalName>therestproject</finalName> 
    </build> 
</project> 

웹. xml : -

<!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 

<web-app> 
    <display-name>Archetype Created Web Application</display-name> 
</web-app> 
,451,515,

출력 : -

에 얻을 : http://localhost:8080/therestproject/api/hello - 원본 서버가 대상 자원에 대한 현재의 표현을 찾을 수 없습니다 또는 하나에 해당 공개하고자하지 않았다 -> 404.

전에 작업하는 데 사용한 것과 동일한 설정은 pom.xml 파일 종속성 버전의 아래 가지고 때 : -

<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-servlet</artifactId> 
    <version>1.19</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.tomcat</groupId> 
    <artifactId>servlet-api</artifactId> 
    <version>6.0.44</version> 
</dependency> 

IT는 작업하는 데 사용! POM.XML을 변경하고 JERSEY 버전을 가장 최근에 변경했을 때 404부터 시작되었습니다. 나는이 작업에서 oauth2를 수행해야하므로 최신 저지 버전을 유지하려고합니다. 도와주세요.

답변

관련 문제