【问题标题】:How can I change the port of a Spring JaxWs proxy?如何更改 Spring JaxWs 代理的端口?
【发布时间】:2011-08-26 08:54:55
【问题描述】:

我有一个基于 Spring 的工作 Web 服务客户端,定义为:

<bean id="myService" class="org.springframework.remoting.jaxws.JaxWsPortProxyFactoryBean">
    <property name="wsdlDocumentUrl"  value="classpath:/ex/MyService.wsdl" />
    <property name="namespaceUri"     value="http://ex.tld/namespace" />
    <property name="serviceName"      value="MyService" />
    <property name="portName"         value="MyServicePort01" />
    <property name="serviceInterface" value="ex.MyService" />
</bean>

我需要访问不同端点列表上的相同服务。由于列表是动态的,我不能简单地为此配置几个 Spring JaxWsPortProxy bean。

我可以动态更改绑定吗?如何在仍然为 WS 客户端使用 Spring 工具的同时解决这个问题?

【问题讨论】:

    标签: spring jax-ws


    【解决方案1】:

    我只是更改了代理的端点地址:

    ((BindingProvider)myService).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://new/endpoint/address");

    如上所示,Spring 返回的代理可以转换为 BindingProvider(就像普通的 JaxWs 代理一样)。

    如果有人采用此方法,请注意同步问题。

    【讨论】:

      【解决方案2】:

      我和你一样在 xml 中配置。 之后,在 postConsruct 设置端点,并调用 afterPropertiesSet:

       @Autowired
       private JaxWsPortProxyFactoryBean myService;
      
       @PostConstruct
       public void init() {
         myService.setEndpointAddress("http://new/endpoint/address");
         myService.afterPropertiesSet(); 
      }
      

      【讨论】:

        猜你喜欢
        • 2011-07-06
        • 2013-09-27
        • 1970-01-01
        • 2013-10-31
        • 1970-01-01
        • 1970-01-01
        • 2015-10-16
        • 1970-01-01
        相关资源
        最近更新 更多