spring – Carregar URL de webservice do banco de dados

27 05 2013

Problema

Preciso carregar a URL de webservice client do banco de dados e não do arquivo de configuração no arquivo de contexto do spring.

Solução

Englobar o proxy JaxWsPortProxyFactoryBean do Spring para redirecionar o carregamento da URL no banco.

Como

1) Comparação antes e depois com a definição do WebService, note que a linha do wsdl foi removida e que uma nova classe de proxy foi definida

<!-- ANTES - conexao WS -->
<bean id="servicoWS" class="org.springframework.remoting.jaxws.JaxWsPortProxyFactoryBean">
<property name="serviceInterface" value="br.com.empresa.projeto.cliente.WebServiceCliente" />
<property name="wsdlDocumentUrl" value="http://10.51.10.60:8989/MyProject/mywebservice?wsdl" />
<property name="serviceName" value="ServicoService" />
<property name="portName" value="ServicoPort" />
</bean>
<!-- DEPOIS - conexao WS -->
<bean id="servicoWS" class="br.com.getnet.empresa.projeto.comum.UrlDbJaxWsPortProxyFactoryBean">
<property name="serviceInterface" value="br.com.empresa.projeto.cliente.WebServiceCliente" />
<property name="serviceName" value="ServicoService" />
<property name="portName" value="ServicoPort" />
</bean>

2) Classe do proxy que ira dar o load na URL e atribuir

public class UrlDbJaxWsPortProxyFactoryBean extends JaxWsPortProxyFactoryBean { 
    @Autowired
    public UrlDbJaxWsPortProxyFactoryBean(final ParametroDeConfiguracaoRepository parametroDeConfiguracaoRepository) throws MalformedURLException {
        ParametroDeConfiguracao parametroWsdl = parametroDeConfiguracaoRepository.findParamentroDeConfiguracao(ParametroDeConfiguracaoTipo.SERVICO_WSDL);
        if (parametroWsdl != null) {
            setWsdlDocumentUrl(new URL(parametroWsdl.getValorEmString()));
        }
    }
}
Anúncios

Ações

Information

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




%d blogueiros gostam disto: