0

Websphere 8.x で REST サービスを動作させるために取り組んでいますが、次の web.xml を使用すると...

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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"
  version="3.0"> 

<servlet>
    <display-name>jersey</display-name>
    <servlet-name>jersey</servlet-name>
    <servlet-class>
                 com.ibm.websphere.jaxrs.server.IBMRestServlet
    </servlet-class>
    <init-param>
         <param-name>com.sun.jersey.config.property.packages</param-name>
         <param-value>org.gleason.rest</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>



<servlet-mapping>
    <servlet-name>jersey</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

</web-app>

アプリを起動しようとすると、404 が表示され、Eclipse にも次のビルド エラーが表示されます...

説明 リソース パス ロケーション タイプ サーブレット マッピング「jersey」は、定義されていないサーブレットを参照しています web.xml /RestTest/WebContent/WEB-INF 不明な Web 問題

これにより、正しく構築されていないと思われます。それが私の index.html が機能する理由ですが、JAX-RS は失敗します。

誰が私が欠けているものを見ることができますか? すべての例はアプリケーションを中心に展開していますが、パッケージを使用したいと思います。

4

4 に答える 4

2

WAS には、Apache Wink に基づく JAX-RS 実装があります。この構成では、Apache Wink と Jersey (別の JAX-RS 実装) が混在しています。

于 2013-09-26T13:51:31.943 に答える
1

web.xml 構成を回避して、RestService クラスのアノテーションのみを使用して REST サービスを構成することもできます。

GET または POST リクエストでテストする簡単な例を次に示します。



    import javax.ws.rs.ApplicationPath;
    import javax.ws.rs.Consumes;
    import javax.ws.rs.GET;
    import javax.ws.rs.POST;
    import javax.ws.rs.Path;
    import javax.ws.rs.Produces;
    import javax.ws.rs.core.Application;
    import javax.ws.rs.core.MediaType;

    @ApplicationPath("rest")
    @Path("/service")
    public class RestService extends Application {

        @GET
        @Produces(MediaType.APPLICATION_JSON)
        public Map hello() {
            Map map = new HashMap(1);
            map.put("Hello", "I'm a REST Service");
            return map;
        }

        @POST  //
        @Produces(MediaType.APPLICATION_JSON)
        @Consumes(MediaType.APPLICATION_JSON)
        public Map helloName(HashMap entryMap) {
            Map map = new HashMap(1);
            map.put("Hello", entryMap.get("Name"));
            return map;
        }
    }


于 2015-09-02T10:00:39.093 に答える