2017-03-27 11 views
0

私はrestapiから始まり、インターネット上の基本的なプログラムでそれを行うことを考えました。 コードを共有しています。JavaでREST APIをビルド中にHTTP 404エラーが発生しました

クラスファイル:

package com.java2novice.restful; 
    import javax.ws.rs.GET; 
    import javax.ws.rs.Path; 
    import javax.ws.rs.PathParam; 
    import javax.ws.rs.core.Response; 

    @Path("/publish") 
    public class RestEasyExample { 

     @GET 
     @Path("/{message}") 
     public Response publishMessage(@PathParam("message") String msgStr){ 

      String responseStr = "Received message: "+msgStr; 
      return Response.status(200).entity(responseStr).build(); 
     } 
    } 

web.xml-

<web-app id="WebApp_ID" version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

    <!-- Auto scan REST service --> 
    <context-param> 
     <param-name>resteasy.scan</param-name> 
     <param-value>true</param-value> 
    </context-param> 


    <servlet> 
     <servlet-name>resteasy-servlet</servlet-name> 
     <servlet-class> 
      org.glassfish.jersey.servlet.ServletContainer 
     </servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>resteasy-servlet</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

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>RestfulWebServices</groupId> 
    <artifactId>RestfulWebServices</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <build> 
    <sourceDirectory>src</sourceDirectory> 
    <plugins> 
     <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.3</version> 
     <configuration> 
      <source>1.8</source> 
      <target>1.8</target> 
     </configuration> 
     </plugin> 
     <plugin> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.6</version> 
     <configuration> 
      <warSourceDirectory>WebContent</warSourceDirectory> 
      <failOnMissingWebXml>false</failOnMissingWebXml> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

私はジャージ2.0を使用しています。 私は戦争を展開し、Tomcatのwebappsフォルダに配置しました。 私は2つのurls-

http://localhost:8080/RestfulWebServices/publish/abc 

http://localhost:8080/RestfulWebServices/publish?message=abc 

を使用して、それを呼び出して試してみましたが、私はまだ見つかっていないHTTP 404を得ることに保ちます。

私は何かが不足しているところで私を助けてください。

おかげ

答えて

0

は、web.xml構成上、この構成では、残りのアプリケーションコンテナを使用してみてください。

package com.java2novice.config; 
import org.glassfish.jersey.server.ResourceConfig; 

import java.util.Collection; 

@javax.ws.rs.ApplicationPath("v1") 
public class ApplicationConfig extends ResourceConfig { 

    public ApplicationConfig() { 
     // package where all your api lives 
     packages("com.java2novice.restful"); 
    } 

    @Override 
    public Collection<Strinzg> getPropertyNames() { 
     return super.getPropertyNames(); 
    } 
} 

その後、私はあなたがジャージでのRESTEasyを混合していると思う/ V1 /あなたのエンドポイント

0

をご覧ください。あなたはまた、むしろジャージーを使用してRESTEasyののサーブレットコンテナを使用することを検討すべきである

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

:いずれかの方法で

は、<listener>は、web.xmlファイルに以下の追加web.xml

てみでのparamを必要とされます。

<servlet> 
    <servlet-name>resteasy-servlet</servlet-name> 
    <servlet-class> 
     org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher 
    </servlet-class> 
</servlet> 
関連する問題