5

web.xml構成なしで本当に単純なjaxrsアプリケーションをデプロイしようとしていますが、動作させることができません。私がアクセスすることを期待している私のURLはserverandport/{appname} / rest / welcomes / helloであり、明らかに何かが欠けているに違いないと思います。

応用

@ApplicationPath("/rest")
public class EngineApp extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> s = new HashSet<Class<?>>();
        s.add(RestTestImpl.class);
        return s;
    }

}

リソース

@Path("/welcomes")
public class RestTestImpl {
    @GET
    @Path("hello")
    public String sayPlainHello() {
        return "Hi from Rest";
    }
}

POMスニペット

<groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
    <configuration>
        <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>

編集:以下の応答に加えて、空のweb.xmlと次のweb.xmlを試してみました。わざわざ404も返しますが、以下のxmlには「サーブレットjavax.ws.rs.core.Applicationは利用できません」と記載されています。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    version="3.0"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >
    <servlet> 
        <servlet-name>javax.ws.rs.core.Application</servlet-name> 
        <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping>
        <servlet-name>javax.ws.rs.core.Application</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

</web-app>
4

3 に答える 3

3

この機能を利用するには、アプリケーションをサーブレット3.0準拠のコンテナにデプロイする必要があります。GlassFish3.xまたはTomcat7を試してください。

于 2012-11-14T15:18:25.760 に答える
0

私は非常によく似た質問を見つけました、そしてそこで見つけられた問題はあなたにも役立つかもしれません。私は間違いなく、3.0スキーマバージョンの空のweb.xmlで試して、それが役立つかどうかを確認します。

JBoss AS 7RestfulWebサービスが自動デプロイされない

于 2012-11-14T10:03:13.540 に答える
-3

サーブレット2.0仕様を使用したい場合は、web.xmlを作成し、サーブレットサーブレットのMaven依存関係を追加します。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    version="3.0"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <servlet>
        <servlet-name>REST Service</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>com.mycompany.rest.engine.EngineApp</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>REST Service</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
</web-app>

pomに依存関係を追加する

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-servlet</artifactId>
    <version>1.13</version>
</dependency>
于 2012-11-15T10:28:18.893 に答える