يؤدي الاتصال بخدمة WebService عبر HTTPS إلى حدوث خطأ في تخصيص ملف تعريف SCL
سؤال
أحاول استخدام فئات Jax-WS التي تم إنشاؤها (تم إنشاؤها باستخدام WSimport) للاتصال بحساب ويب عبر اتصال HTTPS من داخل مكون Java في خادم التطبيق سايبيس إي سيرفر 5.3.أحصل على استثناء في سجل Easerver مع ما يلي كسبب أساسي (لقد قمت بإزالة عنوان URL الخاص بـ WebService).
2009-11-15 18:39:58,338: ALL [Thread-19] - Caused by:
java.io.IOException: https://www.<my website url>.com:443: SCL profile
allocation
2009-11-15 18:39:58,338: ALL [Thread-19] - at
com.sybase.jaguar.net.HttpsURLConnection.getInputStream(HttpsURLConnection.java:521)
2009-11-15 18:39:58,338: ALL [Thread-19] - at
java.net.URL.openStream(Unknown Source)
2009-11-15 18:39:58,338: ALL [Thread-19] - at
com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.createReader(RuntimeWSDLParser.java:804)
2009-11-15 18:39:58,338: ALL [Thread-19] - at
com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.resolveWSDL(RuntimeWSDLParser.java:262)
2009-11-15 18:39:58,338: ALL [Thread-19] - at
com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:129)
2009-11-15 18:39:58,338: ALL [Thread-19] - ... 18 more
أنا متأكد من أن هذا لأنني بحاجة إلى إعداد Easerver لقبول شهادة SSL لهذا الموقع.يتم إنشاء رمز الاتصال نفسه بواسطة Jax-WS ، لذا لا أقوم بإنشاء الاتصال بنفسي بالفعل.يحدث في الفصول التي تم إنشاؤها.
أي أفكار حول كيفية تكوين EAServer بشكل صحيحcom.sybase.jaguar.net.HttpsURLConnection.getInputStream هل سيقوم بنجاح بإنشاء اتصال HTTPS بنقطة نهاية خدمة الويب؟
المحلول
لقد عملت مع دعم Sybase لحل هذه المشكلة.لقد تضمن تحديث EAServer لاستخدام موفر أمان Sun بدلاً من موفر Sybase.داخل Jaguar.props قمنا بتحديث خيارات JVM لتكون:
com.sybase.jaguar.server.jvm.options=-Djava.protocol.handler.pkgs=sun.security.provider.Sun|com.sun.net.ssl.internal.ssl
يتيح ذلك له استخدام مزود أمان Sun وتوقفت عن الحصول علىSCL profile allocation
رسالة.
بعد القيام بذلك ، بدأت في الحصول على nullpointerexceptions من فئات Jax-WS في السجل (الذي أكدت أنه كان مرتبطًا بتكوين Jax-WS للاستخدام داخل Easerver ، لا علاقة له بخدمة الويب الخاصة بـ SSL).
اضطررت إلى إضافة جرة عصيدة WebService التي تم إنشاؤها (التي قمت بإنشائها باستخدام Wsimport) إلى خاصية jaguar.propscom.sybase.jaguar.server.java.classes
لقد أضفت أيضًا هذه الجرة التي تم إنشاؤها ومكتبات وقت تشغيل Jax-WS إلى خصائص jaguar.props 2com.sybase.jaguar.server.jvm.bootclasspath.jars
وcom.sybase.jaguar.server.jvm.classpath.jars
ثم قمت بنسخ مكتبات وقت تشغيل Jax-WS وجرة عصيدة WebService التي تم إنشاؤها إلى C:\Sybase\EAServer\java\lib
الدليل وكل شيء بدأ العمل مثل البطل.