4

私は以下に示すような単純なコードを持っている安らかなWebサービスを使用しています:

@Path("/v1/status")
public class ControllerServices 
{
    @GET
    @Produces(MediaType.TEXT_HTML)
    String printOnly()
    {
        System.out.println("running successfully");
        return "<p>this webservice</p>";
    }


}

そして私のweb.xmlファイルは次のようになります:

    <servlet>
    <servlet-name>Jersey REST Service</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>com.techbloomer.services</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
   <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>

お願いしたら

http://localhost:8080/webservicesForIndTadka/rest/v1/status

それはエラーを与える

HTTP Status 405 - Method Not Allowed
type: Status report
message: Method Not Allowed
description: The specified HTTP method is not allowed for the requested resource.
4

5 に答える 5

1

GET リクエストのヘッダーに Content-Type がある場合、Tomcat (私の場合はバージョン 7) はエラー コード 405 を返します。

于 2013-10-13T11:47:16.433 に答える
0
http://localhost:8080/webservicesForIndTadka/rest/v1/status

私はちょうど同様の問題を抱えていました. この場合、それは

http://localhost:8080/webservicesForIndTadka/rest/v1/status/
于 2014-03-04T11:21:09.973 に答える
0
  1. お使いのブラウザは、異なるコンテンツ タイプを JAX-RS サービスに送信しています。

試す

@Produces(
    {
        MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML
    })
  1. 追加する必要があります

以下

@Path("/get")

メソッドへのパスを指定するために、JAX-RS は別のものを使用している可能性があります。

于 2013-10-14T09:45:39.347 に答える
0

こんにちは、同じ問題が発生しましたが、修正しました。

  • コードに追加して使用@Path("pathName")します。
  • サーバーでプロジェクトを 1 回実行します。
  • URLをコピーして、クロムのようなWebブラウザに貼り付けます(私はクロムを使用しています)。
  • http://localhost:8080/webservicesForIndTadka/rest/v1/status/pathName
  • @Producesオプションの場合もあります。
  • それはあなたの問題を解決するかもしれません。
于 2015-10-14T07:47:02.273 に答える