2012-03-21 44 views
0

我试图建立在Ubuntu上一个简单的Java SSL服务器,虽然当我运行它,它编译没有警告,我得到的gcc这些错误:错误的createServerSocket

java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext) 
at javax.net.ssl.DefaultSSLServerSocketFactory.throwException(SSLServerSocketFactory.java:159) 
at javax.net.ssl.DefaultSSLServerSocketFactory.createServerSocket(SSLServerSocketFactory.java:171) 
at Server.main(Server.java:15) 
Caused by: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext) 
at java.security.Provider$Service.newInstance(Provider.java:1262) 
at sun.security.jca.GetInstance.getInstance(GetInstance.java:236) 
at sun.security.jca.GetInstance.getInstance(GetInstance.java:164) 
at javax.net.ssl.SSLContext.getInstance(SSLContext.java:156) 
at javax.net.ssl.SSLContext.getDefault(SSLContext.java:97) 
at javax.net.ssl.SSLServerSocketFactory.getDefault(SSLServerSocketFactory.java:113) 
at Server.main(Server.java:14) 
Caused by: java.security.PrivilegedActionException: java.io.FileNotFoundException: server.ks (No such file or directory) 
at java.security.AccessController.doPrivileged(Native Method) 
at sun.security.ssl.SSLContextImpl$DefaultSSLContext.getDefaultKeyManager(SSLContextImpl.java:571) 
at sun.security.ssl.SSLContextImpl$DefaultSSLContext.<init>(SSLContextImpl.java:486) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:525) 
at java.lang.Class.newInstance0(Class.java:372) 
at java.lang.Class.newInstance(Class.java:325) 
at java.security.Provider$Service.newInstance(Provider.java:1238) 
... 6 more 
Caused by: java.io.FileNotFoundException: server.ks (No such file or directory) 
at java.io.FileInputStream.open(Native Method) 
at java.io.FileInputStream.<init>(FileInputStream.java:138) 
at java.io.FileInputStream.<init>(FileInputStream.java:97) 
at sun.security.ssl.SSLContextImpl$DefaultSSLContext$2.run(SSLContextImpl.java:574) 
at sun.security.ssl.SSLContextImpl$DefaultSSLContext$2.run(SSLContextImpl.java:572) 
... 16 more 

我认为原因是线路的createServerSocket在下面的代码中,但相当长的时间后,我无法猜测为什么。有任何想法吗?这是代码的一部分:

SSLServerSocketFactory sssf = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault(); 
SSLServerSocket ss = (SSLServerSocket) sssf.createServerSocket(4444);  
SSLSocket s = (SSLSocket) ss.accept(); 
BufferedReader buff = new BufferedReader (new InputStreamReader(s.getInputStream()));  
String line; 
Thread t = new Thread(new Write(s)); 
t.start(); 

回答

4

经常检查所有在你的堆栈跟踪“引发的”条目:

Caused by: java.io.FileNotFoundException: server.ks (No such file or directory) 

您还没有设置您的密钥存储正确

+0

非常感谢人! – user1031431 2012-03-21 17:18:05

相关问题