パソコン関係のメモと趣味のページ

Google App Engineに触ってみようと思って色々いじっていたら、LinuxMint Debian Editionのeclipseで、以下のようなエラーが・・・。
"Checking Google Account credentials" 中に内部エラーが発生しました。
Could not initialize NSS
java.security.ProviderException: Could not initialize NSS
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:201)
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:103)
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:532)
at sun.security.jca.ProviderConfig$3.run(ProviderConfig.java:262)
at sun.security.jca.ProviderConfig$3.run(ProviderConfig.java:244)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:244)
at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:224)
at sun.security.jca.ProviderList.getProvider(ProviderList.java:232)
at sun.security.jca.ProviderList$ServiceList.tryGet(ProviderList.java:433)
at sun.security.jca.ProviderList$ServiceList.access$200(ProviderList.java:375)
at sun.security.jca.ProviderList$ServiceList$1.hasNext(ProviderList.java:485)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:170)
at javax.net.ssl.SSLContext.getInstance(SSLContext.java:142)
at javax.net.ssl.SSLContext.getDefault(SSLContext.java:85)
at javax.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory.java:119)
at javax.net.ssl.HttpsURLConnection.getDefaultSSLSocketFactory(HttpsURLConnection.java:344)
at javax.net.ssl.HttpsURLConnection.<init>(HttpsURLConnection.java:302)
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:963)
at com.google.api.client.javanet.NetHttpRequest.<init>(NetHttpRequest.java:36)
at com.google.api.client.javanet.NetHttpTransport.buildGetRequest(NetHttpTransport.java:63)
at com.google.api.client.javanet.NetHttpTransport.buildGetRequest(NetHttpTransport.java:28)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:116)
at com.google.gdt.eclipse.login.GoogleLogin$2.run(GoogleLogin.java:173)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: java.io.FileNotFoundException: /usr/lib/libnss3.so
at sun.security.pkcs11.Secmod.initialize(Secmod.java:186)
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:197)
... 30 more

素直にWindowsでやっときゃよかった・・・と思っていたら、解決されている方がいらっしゃいました。OpenJDKの設定を壊しちゃった?

参考:http://www.unnaki.com/
http://www.unnaki.com/2011/07/libnss3-so-error-on-...

$ gksudo gedit /etc/java-6-openjdk/security/nss.cfg
nssLibraryDirectoryを以下のように修正します。
name = NSS
#nssLibraryDirectory = /usr/lib
nssLibraryDirectory = /usr/lib/i386-linux-gnu
nssDbMode = noDb
attributes = compatibility

私の環境では、これでOKでした。
x64ではこうだ、と上記参照サイトにコメントがありました。(未確認です。x64環境がないので)
name = NSS
nssLibraryDirectory = /usr/lib/x86_64-linux-gnu
nssDbMode = noDb
attributes = compatibility

未確認ですが、OpenJDKがらみなら、update-alternatives --config java でSun(Oracle)のJDKに変更してもいけるかもしれません。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます