2009-03-16 4 views
3

내가 고객 SecureSocketFactory는 다음과 같은 속성을 사용하여 HTTPS 연결을 할 때 축이 사용되도록 설정해야 속성이 클래스가 축, A의 생성자에 의해 인스턴스화축 SecureSocketFactory 생성자를 설정하면

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

Hashtable (속성)이 호출됩니다. 이 테이블에는 timeout 속성이 설정되어 있습니다. 거기에 더 많은 가치를 설정하는 방법이 있습니까? 정적 또는 시스템 속성을 사용하여 전역이 아니라 인스턴스별로 시나리오에서 소켓 팩토리를 구성 할 수 있기를 원합니다.

편집 :이 속성은 실제로 HttpSender (BasicHandler) 옵션이라는 것을 알았습니다. 나는 아직도 이들을 동적으로 설정할 수 없다.

답변

1

문제를 해결하는 방법을 찾았습니다. 내 코드에서 내가 사용하는 속성을 설정하고 싶습니다 : serviceLocator.getEngine().setOption(USE_CERT_PROPERTY, new Boolean(true));

여기서 getEngine은 AxisEngine을 사용 중으로 반환합니다. 그런 다음 소켓 팩토리에서 다음을 수행 할 수 있습니다.

내가 원하는 인증서 이름을 사용하여 개체를 설정할 수 있습니다. 희망이 사람을 도움이됩니다.

1

SocketFactory 동작을 수정하려는 경우 SocketFactory 인스턴스를 검색 한 다음 속성을 변경하거나 추가 할 수 있습니다. 그러나 이렇게하면 HashTable 특성을 시간 제한과 함께 주입해야합니다. 나는 최종적이고 예쁜 해결책이 없다고 생각한다. 이 코드 후

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

이의 SocketFactory의 인스턴스가 작성되고 구성 및 웹 서비스에 사용할 준비, 또는됩니다 어떤^_^

관련 문제