Eclipse无法找到Jersey导入

时间:2014-07-01 13:52:44

标签: eclipse web-services rest tomcat7 jersey-client

我正在尝试实现指定here in section 6.5的非常简单的客户端,并由以下Eclipse Java代码(在Ubuntu下)提供:

package de.vogella.jersey.first.client;

import java.net.URI;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;

public class Test {
    public static void main(String[] args) {
    ClientConfig config = new DefaultClientConfig();
    Client client = Client.create(config);
    WebResource service = client.resource(getBaseURI());
    // Fluent interfaces
    System.out.println(service.path("rest").path("hello").accept(MediaType.TEXT_PLAIN).get(ClientResponse.class).toString());
    // Get plain text
    System.out.println(service.path("rest").path("hello").accept(MediaType.TEXT_PLAIN).get(String.class));
    // Get XML
    System.out.println(service.path("rest").path("hello").accept(MediaType.TEXT_XML).get(String.class));
    // The HTML
    System.out.println(service.path("rest").path("hello").accept(MediaType.TEXT_HTML).get(String.class));

  }

  private static URI getBaseURI() {
    return UriBuilder.fromUri("http://localhost:8080/de.vogella.jersey.first").build();
  }
}

我已经安装了Tomcat服务器,我认为它正在运行,因为我可以在Eclipse的Servers列表中看到它,并且我已经在同一教程的6.1-6.4节中运行了该示例。我还将所有Jersey JARS添加到WEB-INF / lib。我确保启动一个与其他任何东西分开的新动态Web项目。

但是,我一直收到错误

The import com.sun.jersey cannot be resolved.

我知道Eclipse无法解析必要的软件包,但是如何让Eclipse知道这些呢?我已经下载了jaxrs-ri-2.9.zip并将JARS复制到了WEB-INF / lib目录。

我正在使用Eclipse Kepler。

编辑:在项目下添加JAR文件" Properies / Java Build path"也没有用。

2 个答案:

答案 0 :(得分:3)

我对这个非常好的video tutorial取得了更大的成功。

我正在使用Eclipse Kepler。确保首先通过“Help / Eclipse Marketplace ...”菜单安装JBoss。您还需要所需的Jersey archive

按照上面的教程,我现在相信原来的问题是由于我没有安装正确的JAR文件。我最初使用的是bundle zip on this web page,但实际上您应该使用here, as stated above找到的JAR。

答案 1 :(得分:2)

这是因为您使用的来源是Jersey 1.x API。但是您正在使用2.x API。多数民众赞成在教程(现在)中说明。

问候