Java 通过Spring创建具有可配置端点的webservice
我有一个应用程序试图通过wsdl2java使用生成的类访问Web服务。我希望能够对其进行配置,以便根据环境使用不同的端点(TEST/PROD) 我发现下面的答案正是我想要的 然而,我想使用Spring将服务的一个实例注入到我的服务层中——是否有一种纯Spring的方法来实现上述功能Java 通过Spring创建具有可配置端点的webservice,java,spring,web-services,Java,Spring,Web Services,我有一个应用程序试图通过wsdl2java使用生成的类访问Web服务。我希望能够对其进行配置,以便根据环境使用不同的端点(TEST/PROD) 我发现下面的答案正是我想要的 然而,我想使用Spring将服务的一个实例注入到我的服务层中——是否有一种纯Spring的方法来实现上述功能 或者,有没有更好的方法将Web服务实例注入到类中,并且仍然能够动态配置端点?使用基于Spring Java的配置: @Configuration public class HelloServiceConfig {
或者,有没有更好的方法将Web服务实例注入到类中,并且仍然能够动态配置端点?使用基于Spring Java的配置:
@Configuration
public class HelloServiceConfig {
@Bean
@Scope("prototype")
public HelloService helloService(@Value("${webservice.endpoint.address}") String endpointAddress) {
HelloService service = new HelloService();
Hello port = service.getHelloPort();
BindingProvider bindingProvider = (BindingProvider) port;
bindingProvider.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,endpointAddress);
return service;
}
}
@Component
public class BusinessService {
@Autowired
private HelloService hellowService;
...
public void setHelloService(HelloService helloService) {
this.helloService = hellowService;
}
}
编辑
要将其用于基于Spring XML的配置,只需将HelloServiceConfig
注册为Spring上下文XML文件中的bean:
<bean class="com.service.HelloServiceConfig.class"/>
<bean id="businessService" class="com.service.BusinessService">
<property name="helloService" ref="helloService"/>
</bean>
在Spring中创建web服务客户端的其他替代方法包括使用或。这两个选项都允许基于
wsdl2java
仅使用XML定义JAX-WS
客户端,但需要额外的依赖项 我应该澄清一下。我正在寻找一种基于SpringXML的解决方案,它不需要自动连接。你知道这样做的方法吗?我最终使用ApacheCXF使用纯SpringXML方法:-谢谢!