我正在研究 REST 和协议缓冲区 atm。因此,我找到了创建示例应用程序的 [this][1] 教程
不幸的是,我遇到了要导入的库的问题,我无法解决:
在这一行:
return GrizzlyServerFactory.create(uri, initParams);
我收到语法错误:
The method create(URI, ResourceConfig) in the type
GrizzlyServerFactory is not applicable for the arguments (URI,
Map<String,String>)
GrizzlyServerFactory 在我导入的这个库中:
import com.sun.jersey.api.container.grizzly.GrizzlyServerFactory;
作为参考,我将整个课程粘贴在这里:
package com.sampullara.jaxrsprotobuf.tutorial;
import java.io.IOException;
import java.net.URI;
import java.util.HashMap;
import java.util.Map;
import javax.ws.rs.core.UriBuilder;
import com.sun.grizzly.http.SelectorThread;
import com.sun.jersey.api.container.grizzly.GrizzlyServerFactory;
import com.sun.jersey.api.core.ResourceConfig;
public class Main {
public static final URI BASE_URI = UriBuilder.fromUri("http://localhost/").port(9998).build();
public static void main(String[] args) throws IOException {
System.out.println("Starting grizzly...");
URI uri = BASE_URI;
SelectorThread threadSelector = createServer(uri);
System.out.println(String.format("Try out %sperson\nHit enter to stop it...", uri));
System.in.read();
threadSelector.stopEndpoint();
}
public static SelectorThread createServer(URI uri) throws IOException {
Map<String, String> initParams = new HashMap<String, String>();
initParams.put("com.sun.jersey.config.property.packages", "com.sampullara");
// error happens in next line - constructor doesnt exist with the given parameters
return GrizzlyServerFactory.create(uri, initParams);
}
}
编辑1:
我修改了代码,但仍然无法正常工作:
public static SelectorThread createServer(URI uri) throws IOException {
//Map<String, String> initParams = new HashMap<String, String>();
//initParams.put("com.sun.jersey.config.property.packages", "com.sampullara");
// original code: return GrizzlyServerFactory.create(uri, initParams);
DefaultResourceConfig rscfg = new DefaultResourceConfig();
return GrizzlyServerFactory.create( uri , rscfg );
}
Eclipse 向我抛出以下运行时错误:
SCHWERWIEGEND:ResourceConfig 实例不包含任何根资源类。线程“main”com.sun.jersey.api.container.ContainerException 中的异常:ResourceConfig 实例不包含任何根资源类。在 com.sun.jersey.server.impl.application.RootResourceUriRules.(RootResourceUriRules.java:99) 在 com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1300) 在 com.sun。 jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:163) 在 com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:769) 在 com.sun.jersey。 server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:765) 在 com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193) 在 com.sun。