У меня возникает практическая проблема, и проблему можно описать следующим образом.
Мы разрабатываем компонент (например, плагин) для выполнения некоторой задачи, когда событие запускается во внешней CMS с использованием предоставляемого ими API. Они предоставили несколько библиотек jar, поэтому мы реализуем предоставленный ими интерфейс. Затем внутренний метод вызывается при запуске события. (CMS создает только один экземпляр класса, когда запускается первое событие, затем просто выполняет метод с каждым триггером события)
Функция может быть обобщена следующим образом:
import com.external.ProvidedInterface;
public class MonitorProgram implements ProvidedInterface{
public void process(){
//This method is called when an event is triggered in CMS
}
}
В нашем классе мы используем "javax.net.ssl.HttpsURLConnection" (JAVA 1.5). Но HttpsURLConnection мигрировал в javax.net.ssl из com.sun.net.ssl для 1.4. Но, похоже, CMS, на которую я ссылаюсь (на самом деле мы не знаем об их реализации), использует что-то вроде этого
System.setProperty("java.protocol.handler.pkgs","com.sun.net.ssl.internal.www.protocol");
приводит к исключению ClassCastException в нашем коде.
Я думаю, мой вопрос ясен. В нашем случае мы не можем установить параметры виртуальной машины,
-Djava.protocol.handler.pkgs=
Также мы не можем установить его обратно, используя
System.setProperty("")
потому что экземпляр VM одинаков для CMS и нашей программы.
Что я могу сделать, чтобы решить эту проблему? А идея или опыт?