วิธีการ getDefault() ไม่ได้กำหนดไว้สำหรับประเภท SSLContext?

ฉันได้รับข้อผิดพลาดดังกล่าวใน eclipse ขณะนำเข้าโครงการของฉัน ฉันได้เพิ่ม jsse jar ในเส้นทางการสร้าง java แล้ว รหัสข้อผิดพลาดคือ var = SSLContext.getDefault().getSocketFactory();

ฉันไม่พบวิธีแก้ปัญหาใน Google ขอบคุณล่วงหน้า


person Pankaj Kumar    schedule 23.11.2013    source แหล่งที่มา
comment
ฉันไม่เห็นวิธีใด ๆ setDefault กับสิ่งที่คุณโพสต์ อย่างไรก็ตาม หากคุณอ่านเอกสาร คุณจะเห็นว่า setDefault รับพารามิเตอร์ docs.oracle.com/javase/7/docs/api/javax/net/ssl/   -  person Alexis C.    schedule 23.11.2013
comment
@ZouZou ขออภัย ... มันคือ getDefault()   -  person Pankaj Kumar    schedule 23.11.2013
comment
คุณแน่ใจหรือไม่ว่าคุณนำเข้าแพ็คเกจที่ถูกต้อง (javax.net.ssl.SSLContext)   -  person Alexis C.    schedule 23.11.2013
comment
คุณใช้ Java เวอร์ชันใดอยู่? getDefault() เปิดตัวใน Java 6   -  person Jon Skeet    schedule 23.11.2013
comment
@ZouZou ใช่นี่คือการนำเข้า   -  person Pankaj Kumar    schedule 23.11.2013


คำตอบ (2)


ฉันได้เพิ่ม jsse jar ในเส้นทางการสร้าง java แล้ว

JSSE เป็นส่วนหนึ่งของ JRE หลักมาระยะหนึ่งแล้ว (Java 1.4 เท่าที่ฉันจำได้) เวอร์ชันใดก็ตามที่คุณเพิ่มลงในเส้นทางการ build นั้นเป็นเวอร์ชันเก่าที่ขัดแย้งกับเวอร์ชันเริ่มต้นอย่างแน่นอน: อย่าเพิ่มไลบรารีเพิ่มเติมนั้น ใช้สิ่งที่มีอยู่แล้วใน JSSR (ไม่จำเป็นต้องเพิ่มผู้ให้บริการความปลอดภัยโดยทั่วไปอย่างชัดเจน หากคุณ ทำตามคำแนะนำเก่าอีกครั้ง)

person Bruno    schedule 23.11.2013
comment
ฉันใช้ java 6 การลบ jsse jar ออกจาก build path ทำให้เกิดข้อผิดพลาด...การนำเข้า javax.net.ssl.... ไม่สามารถแก้ไขได้ ฉันสับสนเนื่องจากโดยค่าเริ่มต้น eclipse ของฉันควรใช้ java 6 ที่ติดตั้งไว้ และหากมี jsse jar อยู่แล้ว เหตุใดจึงเกิดข้อผิดพลาดนี้ อาจต้องปรับการตั้งค่าเฉพาะโปรเจ็กต์ในคอมไพเลอร์ Java หรือเปลี่ยนแปลงบางอย่างในแง่มุมของโปรเจ็กต์... โปรดแนะนำฉันด้วย ขอบคุณ - person Pankaj Kumar; 24.11.2013
comment
ควรมี jsse.jar ในส่วน JRE System Libraries ของคุณในโปรเจ็กต์ Eclipse ของคุณ แต่ไม่ใช่ส่วนเพิ่มเติม ฉันไม่แน่ใจว่าคุณทำอะไรกับการติดตั้ง แต่คุณสามารถตรวจสอบได้ว่าคุณไม่ได้เปลี่ยนโครงสร้าง JRE บนดิสก์ด้วย - person Bruno; 24.11.2013

หากคุณใช้ Java 6 ซึ่งเป็นเวอร์ชันที่เพิ่ม getDefault() คุณจะต้องเข้าถึงคลาสอื่นที่ชื่อ SSLContext - ลอง javax.net.ssl.SSLContext.getDefault()

person Elliott Frisch    schedule 23.11.2013
comment
ใช่ เราใช้ java 6 var=javax.net.ssl.SSLContext.getDefault().getSocketFactory(); ยังไม่ได้ทำงาน - person Pankaj Kumar; 23.11.2013
comment
ตรวจสอบให้แน่ใจว่าระดับคอมไพเลอร์ของคุณตั้งค่าเป็น java 6 ลิงก์นี้อาจช่วยได้ - person Elliott Frisch; 23.11.2013