我正在尝试创建一个简单的服务器程序来处理http请求。因此,在进行最小搜索时,我无意中发现了httpserver类的oracle文档,在com.sun.net包中。我对Java比较陌生,所以我认为由Oracle本身“赞助”的类将包含在默认库中。
不幸的是,情况并非如此。在尝试了大量可能的语法导入错误(各种错误引发)并在我的Ubuntu机器上正确地安装了Oracle JDK 8之后,编译器说这个包不存在。我该怎么做才能让包裹起作用?
发布于 2015-05-10 11:32:47
我终于成功了。大多数情况下,这是来自我的地方的一个误解,因为我只导入了一个错误的点--也就是说,我只导入了com.sun.net.httpserver,认为后面的部分是我想要的实际类,但它只是包名。然后我继续导入com.sun.net.httpserver.HttpServer,然后导入我的其他类。最后,com.sun.net.httpserver.*将非常好地工作。这看起来很愚蠢,因为我知道了,但我想我会把它留在这里,以防任何人有同样的误解--我已经在这个问题上看到了一个最受欢迎的人。当然,正如其他人所指出的,包不是标准java库的一部分,但我专门为此使用了Oracle Java。
这个类确实很有用,不像另一个答案所暗示的那样,但是现在我偶然发现了另一个关于正确读取请求体的问题,这可能与客户机服务器的区域设置有关,现在我将请求搜索它。对任何想要使用这个包的人来说都是一个警告。
发布于 2015-05-09 22:54:05
首先,尽量避免使用com.sun.xxx包,因为这是Oracle/Sun实现的核心。
其次,为什么不使用apache的库呢?请参阅https://hc.apache.org/
编辑:
您还可以查看http://sparkjava.com/,而不是测试,但是示例看起来很有希望,它们使用的是Java8很好的特性。
https://stackoverflow.com/questions/30134507
复制相似问题