2013-02-13 53 views
-1

我已经编写了一个tcp(SSL)服务器代码,用于接收客户端连接并将数据分发给客户端。服务器GUI基于JavaFX。当我从Net Beans或Eclipse中运行服务器软件时,它工作正常,接收客户端连接并发送和接收数据。但是,当我将代码编译为可执行文件Jar时,服务器不会收到连接,并且客户端代码会抛出:Connection refused exception。编译为可执行文件时Java服务器软件没有收到连接Jar

我试过ping服务器,它似乎服务器不听特定的端口,当它从可执行文件Jar运行时,但是从IDE内运行时。

说实话,我不知道什么可能会导致这种行为。将不胜感激任何见解,建议或导致如何解决这个问题。我不认为具体的代码是相关的,但如果somone认为它是我会发布服务器代码。

+0

可能是javaFX箱子某种沙箱,你必须告诉它让套接字连接? http://docs.oracle.com/javafx/1.3/tutorials/Create-Secure-JavaFX-App/index.html – kofemann 2013-02-13 22:29:12

+0

有趣,但我怀疑是这样的情况,因为在从IDE运行时工作。为什么通过IDE运行的相同代码允许某些内容,然后在应用程序部署时不允许它?我真的希望情况并非如此,如果是的话,那将是非常不明智的。你永远无法告诉你的应用程序如何工作。看着它,虽然,谢谢。 – user1666216 2013-02-13 22:38:54

+0

如果服务器无法在端口上侦听,您的代码永远不会到达,或者您忽略了生成的异常。 – EJP 2013-02-14 00:10:41

回答

0

嗯,原来问题是相关的密钥库没有被正确加载。它们被加载为FileInputStreams,当嵌入到Jar文件中时它们将不起作用。 我将它们还原为InputStreams,它与SSL上下文一样好,现在一切似乎都正常。

非常感谢所有的建议,他们反对帮助我消除一路上的东西。

+0

你必须已经压制了每一个异常,以避免立即显现。 – EJP 2013-02-14 10:22:12

+0

是的,异常处理做得很差。 – user1666216 2013-02-15 22:32:45

相关问题