2017-07-28 9 views
0

私はすべてを調べ、いくつかの問題を修正しましたが、Tomcat自体が起動していても404を返します。Java 1.8、tomcat 8.5、Jersey 2 - 正常に動作しない

の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>com.resty</groupId> 
    <artifactId>resty</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <repositories> 
     <repository> 
      <id>maven2-repository.java.net</id> 
      <name>Java.net Repository for Maven</name> 
      <url>http://download.java.net/maven/2/</url> 
      <layout>default</layout> 
     </repository> 
    </repositories> 
    <dependencies> 
     <!-- JAX-RS --> 
     <dependency> 
      <groupId>javax.ws.rs</groupId> 
      <artifactId>javax.ws.rs-api</artifactId> 
      <version>2.0.1</version> 
     </dependency>  
     <dependency> 
      <groupId>org.glassfish.jersey.containers</groupId> 
      <artifactId>jersey-container-servlet</artifactId> 
      <version>2.25.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.core</groupId> 
      <artifactId>jersey-server</artifactId> 
      <version>2.25.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.core</groupId> 
      <artifactId>jersey-client</artifactId> 
      <version>2.25.1</version> 
     </dependency> 
    </dependencies> 
    <build> 
     <finalName>resty</finalName> 
     <plugins> 
      <plugin> 
        <artifactId>maven-war-plugin</artifactId> 
        <version>3.0.0</version> 
      </plugin> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

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" 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_3_0.xsd" 
    version="3.0"> 
    <display-name>resty</display-name> 
    <welcome-file-list> 
     <welcome-file>index.html</welcome-file> 
     <welcome-file>index.htm</welcome-file> 
     <welcome-file>index.jsp</welcome-file> 
     <welcome-file>default.html</welcome-file> 
     <welcome-file>default.htm</welcome-file> 
     <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 

    <servlet> 
     <servlet-name>jersey-serlvet</servlet-name> 
     <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
     <init-param> 
      <param-name>jersey.config.server.provider.packages</param-name> 
      <param-value>com.resty</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>jersey-serlvet</servlet-name> 
     <url-pattern>/resty/*</url-pattern> 
    </servlet-mapping> 

</web-app> 

Resty.java

package com.resty; 

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.MediaType; 

@Path("/resty") 
public class Resty { 

    @GET 
    @Produces(MediaType.APPLICATION_JSON) 
    @Path("/example") 
    public String getExample() { 
     return "{\"result\":\"blah\"}"; 
    } 
} 

私は何かが欠けてると確信していますしかし、私はそれが何であるか把握できません。サーバー上で実行すると、eclipseはこのURLを開きます。http://localhost:9090/Resty/しかし、私は404を参照しています。私はもっと余裕を持ってURLを試してみました(上記のコードを参照)。 ?

+0

URLは大文字と小文字が区別されますが、tomcat webapps dirを見て、どのような名前でデプロイされているのか確認しましたか? –

+0

'web.xml'に' application'を宣言していますか? また、Tomcatモニタページから、アプリケーションの起動または停止を確認しますか? –

+0

私はコード内のすべてのrestyを小文字にして、もう一度試してみましょう。resty /を次々にurlに追加しました。しかし、すべて404です。urlからresty /をすべて削除することは、tomcatが生きていることを示しています。上記の設定からどのようなURLを指定する必要がありますか?私はtomcatの下に「Resty」と呼ばれるフォルダを見る – Amos

答えて

0

あなたはをweb.xmlに、@Path("/resty")をクラスマッピング用のクラスに使用しており、間違ったURLを使用しています。http://localhost:9090/Resty/<url-pattern>/*</url-pattern>を使用する必要があります。 URLはhttp://localhost:9090/resty/

です。<url-pattern>/*</url-pattern>に何かを使用することもできますが、urlのコントローラパスの前にこのパターンを使用する必要があります。

+0

"resty"をすべて小文字にして再実行しました。私はurl-patternを/ *に変更しましたが、役に立たなかった。まだ404。 – Amos

関連する問題