我正在尝试使用https协议实现Rest Web服务(服务器)。
我在启动服务器时遇到警告:警告:没有可用的服务器连接器支持所需的协议:'HTTPS'。请将匹配连接器的JAR添加到类路径中。
使用的Lib:1)org.restlet-2.0.0.jar 2)com.noelios.restlet.ext.simple_3.1.jar 3)org.simpleframework_3.1 / org.simpleframework.jar 4)com.noelios.restlet.ext.ssl.jar 5)org.jsslutils_0.5 / org.jsslutils.jar
示例代码:
import org.restlet.resource.ServerResource;
import org.restlet.data.Parameter;
import org.restlet.data.Protocol;
import org.restlet.util.Series;
import org.restlet.Component;
import org.restlet.Server;
public class RestServerResource extends ServerResource {
public static void main(String[] args) throws Exception {
// Create a new Restlet component and add a HTTP server connector to it
Component component = new Component();
Server server = component.getServers().add(Protocol.HTTPS, 8183); //https secure protocol
component.getDefaultHost().attach("/", RestServerResource.class);
Series<Parameter> parameters = server.getContext().getParameters();
parameters.add("sslContextFactory", "org.restlet.ext.ssl.PkixSslContextFactory");
// I have created self signed certificate. reference is attached with parameter
parameters.add("keystorePath","${user.home}/serverX.jks");
parameters.add("keystorePassword", "password");
parameters.add("keyPassword", "password");
parameters.add("keystoreType", "JKS");
component.start();
}}
任何人都可以建议,为什么我超出警告并无法启动服务器。提前感谢您提前回复。
此致 维基
答案 0 :(得分:0)
我做到了。有一个罐子问题。 它要求从相同的分布(即2.0.0或2.0.14等)上面提到的jar列表。 不应该从Restlet API doc中提到的不同版本或其他位置(例如org.simpleframework_3.1)中选择jar。
答案 1 :(得分:0)
可能正在使用旧版本的restlet, 这是pom文件依赖项,我有
<dependencies>
<dependency>
<groupId>org.restlet.jse</groupId>
<artifactId>org.restlet</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.restlet.jse</groupId>
<artifactId>org.restlet.ext.simple</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>