2012-03-18 15 views
14

Tło

I zostały z wykorzystaniem Authorize.net SDK w ramach projektu Eclipse na jego rękę. Wszystko działało świetnie. Musiałem dodać to do mojego głównego projektu. Dodałem zależności do ścieżki klasy i skopiowałem w bloku kodu, który potrzebowałem. To powinno zadziałać.

Problem

Krótko mówiąc, kod nie działa, gdzie umieścił go. Jednak będzie działać, gdy wprowadzę go do głównej metody w projekcie.

W miejscu, to nie będzie działać Wszedłem za pomocą kodu z debuggera i znalazł się następujący wyjątek:

java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext) 

rzucone pod adresem:

HttpResponse httpResponse = httpClient.execute(httpPost); 

Uwaga: httpclient = DefaultHttpClient z Apache

Jestem teraz kompletnie zaskoczony. Nie powoduj tego błędu. W Eclipse oba produkty wydają się kierować na to samo środowisko JRE. Oba mają również httpclient-4.0.1.jar. Zauważ, że problematyczny projekt ma również inne zależności, które sprawiają, że działający projekt nie działa {boneCP, guava, mysql_connector_java, protobuf}

Nie sądzę, że dodatkowe słoiki są przyczyną, ponieważ kod problemu działa w innej lokalizacji w projekt.

Wszelkie pomysły na temat tego, co jest nie tak, są bardzo cenne, spędziłem dzień na debugowaniu tego i nie wiem, gdzie dalej.

Dzięki.

Odpowiedz

16

Dobrze po temu kilka poszukiwania odkryłem błąd może być związane z innymi kwestiami za nieważny magazynów kluczy, haseł itp

I wtedy przypomniałem sobie, że postawił dwa argumenty VM do kiedy testowanie SSL dla mojej sieci łączność.

usunąłem następujące argumenty VM, aby rozwiązać problem:

-Djavax.net.ssl.keyStore=mySrvKeystore -Djavax.net.ssl.keyStorePassword=123456 

Uwaga: ten kluczy już nie istnieje, więc to pewnie dlatego wyjątku.

+0

Ten sam problem Ale mój to samodzielna aplikacja. Jak rozwiązać? – MaheshVarma

6

Miałem podobny problem z tym błędem. W moim przypadku wprowadziłem nieprawidłowe hasło do magazynu kluczy.

Zmieniłem hasło do magazynu kluczy, aby pasowało do wprowadzonego hasła (nie chciałem zmieniać hasła, które wprowadziłem), ale nadal podawało ten sam błąd.

keytool -storepasswd -keystore keystore.jks 

Problem polegał na tym, że potrzebowałem również zmienić hasło klucza w magazynie kluczy.

Kiedy początkowo utworzono magazyn kluczy, klucz został utworzony z użyciem tego samego hasła co magazyn kluczy (zaakceptowałem tę domyślną opcję).Musiałem więc zmienić hasło klucza w następujący sposób:

keytool -keypasswd -alias my.alias -keystore keystore.jks