0

そこで、Jersey を使用して Restful サービスを開発する方法に関するこのチュートリアルを読み始めました。MySQL データベースから Android クライアントにデータを送信する Rest サービスを開発したいと考えています。チュートリアルの手順を読んでそれに従い、独自のリソース クラスを作成しましたが、Apache でサービスを実行しようとすると、次のエラーが発生しました

Web サービスと Rest の実験を始めたばかりです。その IBM サイトからこのテーマに関連する情報を読み、コツをつかんだと思っていましたが、なぜ機能しないのかについて本当に迷っています。

私のweb.xmlは次のとおりです

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>TesterRest</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
 <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.mx.ipn.escom.testerRest.resources</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>


</web-app>

これは私のリソース クラスです。

パッケージ com.mx.ipn.escom.testerRest.resources;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Request;
import javax.ws.rs.core.UriInfo;
import javax.xml.bind.annotation.XmlRootElement;

import com.mx.ipn.escom.testerRest.dao.TemaDao;
import com.mx.ipn.escom.testerRest.db.Connector;
import com.mx.ipn.escom.testerRest.modelo.Tema;

@XmlRootElement
@Path("/temas")
public class TemaResource {
    @Context
    UriInfo uriInfo;
    @Context
    Request request;

    @GET
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public List<Tema> getTemas() throws SQLException{

        TemaDao temaDao = new TemaDao();        
        List<Tema> temas=temaDao.getTemas();
        temaDao.terminarSesion();

        return temas;
    }
}

データベース接続用の私のクラスは問題なく動作するので、問題はありません。

Eclipse 3.6 を使用して開発し、Apache Tomcat 6 を使用しています。

私は JAXB にまったく慣れていないので、欠落している注釈の種類に関するガイドラインを誰かに教えていただければ幸いです。

4

1 に答える 1

1

スクリーンショットに基づいて、正しいパッケージ名を持つように 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.mx.ipn.escom.testerRest.resources</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet> 

が設定にmxありません。

于 2012-08-12T16:56:11.330 に答える