Java嵌入式运行时环境中的com.sun.net.httpserver.HttpHandler ClassNotFound异常

时间:2014-08-07 09:45:05

标签: java embedded classnotfoundexception restlet com.sun.net.httpserver

我正试图在ejre上运行restlet。在普通jre的eclipse中,代码工作得很好,但在ejre中我得到以下异常:

java.lang.ClassNotFoundException: com.sun.net.httpserver.HttpHandler cannot be found

我正在使用restlet v.2.2.1。用于jee和Java SE嵌入式运行时环境(版本1.7.0_21-b11,无头)Java HotSpot嵌入式客户端VM(版本23.21-b01,混合模式)

我尝试了reslet v.2.1。正如here中提到的那样但它没有用。

是否有人有类似的问题?

2 个答案:

答案 0 :(得分:3)

我必须在(部分)回答你的问题之前解释一些事情。 Restlet Framework提供了API和实现,我们尝试在多个环境中提供它们(经典的JVM,servlet容器,android,gwt,gae)。由于这些环境仅支持部分JDK(例如GWT讨厌服务器代码),我们通过提供我们称之为"版本"框架(参见http://restlet.com/learn/guide/2.2/editions/)。

在ejre的上下文中,我理解不支持基于JDK轻量级服务器的内部服务器连接器。 为了帮助您,我们可以推出一个新版本(参见此票https://github.com/restlet/restlet-framework-java/issues/939)。

由于我不确定能否尽快提供,我想知道您是否打算在JVM中运行HTTP服务器,或者您是否只想发出客户端请求。 在这种情况下,您可以尝试在(未测试)之前运行这些说明:

org.restlet.engine.Engine.register(false);
Engine.getInstance().getRegisteredClients().add(new org.restlet.engine.connector.HttpClientHelper(null));

答案 1 :(得分:0)

嘿有这个问题将org.restlet.jee从2.0.15升级到2.2.0

必须将类添加到maven依赖项

    <dependency>
        <groupId>com.sun.net.httpserver</groupId>
        <artifactId>http</artifactId>
        <version>20070405</version>
    </dependency>