0

Mac (os x lion) に netbeans をインストールしたばかりで、jersey を使用して安らかな Web サービスを作成しようとしています。

localhost:8080/HelloWorld/test/printHello にアクセスすると、404 Exception が発生します。そのため、web.xml を調べようと思ったのですが、ファイルが見つかりません。

どこを見ればいいのか、何をすべきなのか? 私のJavaクラスは以下に掲載されています。

@Path("/test")
public class helloworld {

    @GET
    @Path("printHello")
    @Produces("text/plain")
    public String printHello() {
        return "Hello there!";
    }
}
4

2 に答える 2

4

サーブレット 3.0 仕様に従って、web.xml はオプションです。

ただし、Netbeans/Eclipse で Web プロジェクトを作成する際に、デプロイメント記述子を持つオプションが与えられます。オプションがない場合は、明示的に web.xml を作成できます。そうです、Jersey を使用して安静な Web サービスを実行するには web.xml が必要です。Jersey の API は、URL に基づいてクラス マッピングを処理する ServletContainer を公開するためです。

お役に立てれば!

于 2012-11-05T18:21:01.247 に答える
1

Netbeans では、web.xml は次の場所にあります。

WAR-Project with Maven
    - Web Pages
        - WEB-INF
            - web.xml

フォルダー構造では、次の場所にあります。

WAR-Project with Maven
    - src
        - main
            - webapp
                - WEB-INF
                    - web.xml

そこで、Jersey Servlet を定義できます。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<!-- Jersey -->
    <servlet>
        <servlet-name>Jersey Web Application</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>package.path.to.your.rest.service;</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey Web Application</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
</web-app>

これで、次の URL で REST サービスにアクセスできます。

localhost:8080/HelloWorld/rest/test/printHello
于 2014-02-23T15:00:46.727 に答える