Axis SecureSocketFactory - Установка атрибутов конструктора - PullRequest
3 голосов
/ 16 марта 2009

У меня есть клиентская SecureSocketFactory, настроенная для использования Axis при установлении соединения https с использованием следующего свойства:

AxisProperties.setProperty("axis.socketSecureFactory",
    "com.metavante.csp.model.manager.mobilepayments.MonitiseSSLSocketFactory");

Когда этот класс создается Axis, вызывается конструктор с Hashtable (атрибутами). Я вижу атрибут timeout установлен в этой таблице. Есть ли способ установить больше значений в этом? Я хотел бы иметь возможность настраивать Socket Factory по сценарию для каждого экземпляра, а не глобально, используя статические или системные свойства.

Редактировать : я обнаружил, что эти атрибуты на самом деле являются параметрами HttpSender (BasicHandler). Я все еще не могу установить их динамически, хотя.

Ответы [ 2 ]

2 голосов
/ 17 марта 2009

Я нашел способ обойти проблему. В моем коде, где я хотел установить свойство, которое я использую: serviceLocator.getEngine().setOption(USE_CERT_PROPERTY, new Boolean(true));

где getEngine возвращает используемый AxisEngine. Тогда на фабрике розеток я могу:

Boolean useSMS = (Boolean) MessageContext.getCurrentContext().getProperty(OtherClass.USE_CERT_PROPERTY);

Я мог бы установить объект на что угодно, возможно я пойду с нужным мне названием сертификата. Надеюсь, это кому-нибудь поможет.

1 голос
/ 04 декабря 2014

Вы можете извлечь экземпляр SocketFactory, а затем изменить или добавить атрибуты, если вы заинтересованы в изменении поведения SocketFactory. Но если вы сделаете это, вы также должны добавить атрибут HashTable (с тайм-аутом). Я думаю, что нет окончательного и красивого решения.

AxisProperties.setProperty("org.apache.axis.components.net.SecureSocketFactory", MyAxisSocketFactory.class.getName());
MyAxisSocketFactory factory = (MyAxisSocketFactory) SocketFactoryFactory.getFactory("https", myHashTableParams);
factory.setMyStuff();

После этого кода будет создан и настроен экземпляр SocketFactory, который будет готов к использованию в веб-службах или как угодно ^ _ ^

...