URL открытое соединение для адреса ssl выдает исключение утверждения

1

Я использую код, как показано ниже.

  new URL("https://google.com").openConnection();

Код работал отлично в JDK 7, однако он генерирует исключение, как показано ниже, когда я использую JDK 8

 Exception in thread "Goole" java.lang.AssertionError: Default directory is not an absolute path
    at sun.nio.fs.WindowsFileSystem.<init>(WindowsFileSystem.java:61)
    at sun.nio.fs.WindowsFileSystemProvider.<init>(WindowsFileSystemProvider.java:53)

Я не понимаю, что такое связь между открытием SSL-соединения и файловой системой. Поэтому я озадачен. Любая подсказка?

Теги:
ssl

1 ответ

1

Некоторые исследования показали, что если user.dir задан как относительный путь, то исключение, как было упомянуто, выбрано. Поэтому я изменил значение user.dir на абсолютный путь и решил проблему. Вот полный стек, чтобы удовлетворить любопытство:

 Exception in thread "Goole" java.lang.AssertionError: Default directory is not an absolute path
at sun.nio.fs.WindowsFileSystem.<init>(WindowsFileSystem.java:61)
at sun.nio.fs.WindowsFileSystemProvider.<init>(WindowsFileSystemProvider.java:53)
at sun.nio.fs.DefaultFileSystemProvider.create(DefaultFileSystemProvider.java:36)
at java.nio.file.FileSystems$DefaultFileSystemHolder.getDefaultProvider(FileSystems.java:108)
at java.nio.file.FileSystems$DefaultFileSystemHolder.access$000(FileSystems.java:89)
at java.nio.file.FileSystems$DefaultFileSystemHolder$1.run(FileSystems.java:98)
at java.nio.file.FileSystems$DefaultFileSystemHolder$1.run(FileSystems.java:96)
at java.security.AccessController.doPrivileged(Native Method)
at java.nio.file.FileSystems$DefaultFileSystemHolder.defaultFileSystem(FileSystems.java:96)
at java.nio.file.FileSystems$DefaultFileSystemHolder.<clinit>(FileSystems.java:90)
at java.nio.file.FileSystems.getDefault(FileSystems.java:176)
at java.io.File.toPath(File.java:2234)
at sun.security.provider.SeedGenerator$1.run(SeedGenerator.java:190)
at sun.security.provider.SeedGenerator$1.run(SeedGenerator.java:168)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.provider.SeedGenerator.getSystemEntropy(SeedGenerator.java:168)
at sun.security.provider.SecureRandom$SeederHolder.<clinit>(SecureRandom.java:190)
at sun.security.provider.SecureRandom.engineNextBytes(SecureRandom.java:210)
at java.security.SecureRandom.nextBytes(SecureRandom.java:457)
at java.security.SecureRandom.next(SecureRandom.java:480)
at java.util.Random.nextInt(Random.java:329)
at sun.security.ssl.SSLContextImpl.engineInit(SSLContextImpl.java:114)
at sun.security.ssl.SSLContextImpl$DefaultSSLContext.<init>(SSLContextImpl.java:675)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at java.lang.Class.newInstance(Class.java:433)
at java.security.Provider$Service.newInstance(Provider.java:1593)
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:96)
at javax.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory.java:122)
at javax.net.ssl.HttpsURLConnection.getDefaultSSLSocketFactory(HttpsURLConnection.java:332)
at javax.net.ssl.HttpsURLConnection.<init>(HttpsURLConnection.java:289)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.<init>(HttpsURLConnectionImpl.java:85)
at sun.net.www.protocol.https.Handler.openConnection(Handler.java:62)
at sun.net.www.protocol.https.Handler.openConnection(Handler.java:57)
at java.net.URL.openConnection(URL.java:972)
  • 0
    Как именно вы установили user.dir как относительный путь?
  • 0
    System.setProperty ("user.dir", ...) Я думаю. Я думаю, что SSL-соединение не должно зависеть от свойства user.dir, установленного в любом случае. По крайней мере, это работало в Java 7.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню