2012-03-18 14 views
14

nền

Tôi đã được sử dụng Authorize.net SDK trong một dự án Eclipse của riêng của nó. Mọi thứ đều hoạt động tốt. Sau đó tôi cần thêm nó vào dự án chính của mình. Tôi đã thêm các phụ thuộc vào đường dẫn lớp và được sao chép trong khối mã mà tôi cần. Nó phải có tác dụng.

Vấn đề

câu chuyện dài ngắn, mã sẽ không hoạt động nơi tôi đặt nó. Tuy nhiên, nó sẽ hoạt động khi tôi đưa nó ra phương pháp chính trong dự án.

Ở nơi nó sẽ không làm việc tôi bước qua mã với trình gỡ lỗi và tìm thấy ngoại lệ sau đây:

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

ném vào:

HttpResponse httpResponse = httpClient.execute(httpPost); 

Lưu ý: HttpClient = DefaultHttpClient từ Apache

Tôi hoàn toàn bị bối rối ngay bây giờ. Không phải điều gì gây ra lỗi này. Trong Eclipse, cả hai sản phẩm dường như đang nhắm mục tiêu cùng một JRE. Cả hai đều có httpclient-4.0.1.jar. Lưu ý rằng dự án có vấn đề cũng có một số phụ thuộc khác mà dự án làm việc không {boneCP, ổi, mysql_connector_java, protobuf}

Tôi không nghĩ rằng các jars phụ là nguyên nhân vì mã vấn đề hoạt động ở một vị trí khác trong dự án.

Bất kỳ ý tưởng nào về những gì sai được đánh giá cao, tôi đã dành cả ngày gỡ lỗi này và không biết đi đâu tiếp theo.

Cảm ơn.

Trả lời

16

Vâng sau khi làm một số chi tiết tìm kiếm tôi phát hiện ra các lỗi có thể liên quan đến các vấn đề khác keystores là không hợp lệ, mật khẩu vv

sau đó tôi nhớ rằng tôi đã đặt hai đối số VM cho khi tôi đã được thử nghiệm SSL cho mạng của tôi kết nối.

tôi loại bỏ các đối số VM sau để khắc phục vấn đề này:

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

Lưu ý: keystore này không còn tồn tại vì vậy đó là lý do tại sao có lẽ là ngoại lệ.

+0

Cùng một vấn đề Nhưng tôi là một ứng dụng độc lập. Làm thế nào để giải quyết? – MaheshVarma

6

Tôi gặp sự cố tương tự với lỗi này. Trong trường hợp của tôi, tôi đã nhập mật khẩu không chính xác cho Keystore.

Tôi đã thay đổi mật khẩu cho Keystore để khớp với những gì tôi đã nhập (Tôi không muốn thay đổi mật khẩu tôi đã nhập), nhưng nó vẫn cho lỗi tương tự.

keytool -storepasswd -keystore keystore.jks 

Vấn đề là tôi cũng cần thay đổi mật khẩu của Khóa trong kho khóa.

Khi tôi tạo Keystore ban đầu, Khóa được tạo bằng cùng mật khẩu với Keystore (Tôi đã chấp nhận tùy chọn mặc định này).Vì vậy, tôi cũng phải thay đổi mật khẩu của Khóa như sau:

keytool -keypasswd -alias my.alias -keystore keystore.jks 
Các vấn đề liên quan