方法主体重复,只有签名改变



我已经从WSDL定义中生成了具有wsimport的对象。

在我的主类中,我只是手动声明我需要的端点,并将其传递给PK以进行调用。

我必须与客户端PK建立一个HTTPS连接。对于每个端点,我必须设置authenticateClient。糟糕的是内容是相等的,只是签名变成了另一个接口。

有没有办法不重复相同的方法代码一次又一次?

private void authenticateClient(AdamConsultationMesuresServiceReadPortType port) {
Client client = ClientProxy.getClient(port);
HTTPConduit httpConduit = (HTTPConduit) client.getConduit();
SpringSoapClientConfig soapClientConfig = new SpringSoapClientConfig();
KeyManagerFactory keyManagerFactory = soapClientConfig.getKeyManagerFactory(company);
TLSClientParameters tslClientParameters = httpConduit.getTlsClientParameters();
if (tslClientParameters == null) {
tslClientParameters = new TLSClientParameters();
}
tslClientParameters.setKeyManagers(keyManagerFactory.getKeyManagers());
tslClientParameters.setDisableCNCheck(true);
httpConduit.setTlsClientParameters(tslClientParameters);
}
private void authenticateClientCommandeCollectePublicationMesures(CommandeCollectePublicationMesuresPortType port) {
Client client = ClientProxy.getClient(port);
HTTPConduit httpConduit = (HTTPConduit) client.getConduit();
SpringSoapClientConfig soapClientConfig = new SpringSoapClientConfig();
KeyManagerFactory keyManagerFactory = soapClientConfig.getKeyManagerFactory(company);
TLSClientParameters tslClientParameters = httpConduit.getTlsClientParameters();
if (tslClientParameters == null) {
tslClientParameters = new TLSClientParameters();
}
tslClientParameters.setKeyManagers(keyManagerFactory.getKeyManagers());
tslClientParameters.setDisableCNCheck(true);
httpConduit.setTlsClientParameters(tslClientParameters);
}

我是否应该将输入参数定义为泛型接口类型或类似的东西?

非常基本和简单的方法

private void authenticateClient(AdamConsultationMesuresServiceReadPortType port) {
doYourStuff(ClientProxy.getClient(port));
}
private void authenticateClientCommandeCollectePublicationMesures(CommandeCollectePublicationMesuresPortType port) {
doYourStuff(ClientProxy.getClient(port));
}

private void doYourStuff(Client client){
HTTPConduit httpConduit = (HTTPConduit) client.getConduit();
SpringSoapClientConfig soapClientConfig = new SpringSoapClientConfig();
KeyManagerFactory keyManagerFactory = soapClientConfig.getKeyManagerFactory(company);
TLSClientParameters tslClientParameters = httpConduit.getTlsClientParameters();
if (tslClientParameters == null) {
tslClientParameters = new TLSClientParameters();
}
tslClientParameters.setKeyManagers(keyManagerFactory.getKeyManagers());
tslClientParameters.setDisableCNCheck(true);
httpConduit.setTlsClientParameters(tslClientParameters);
}

最新更新