Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过Spring创建具有可配置端点的webservice_Java_Spring_Web Services - Fatal编程技术网

Java 通过Spring创建具有可配置端点的webservice

Java 通过Spring创建具有可配置端点的webservice,java,spring,web-services,Java,Spring,Web Services,我有一个应用程序试图通过wsdl2java使用生成的类访问Web服务。我希望能够对其进行配置,以便根据环境使用不同的端点(TEST/PROD) 我发现下面的答案正是我想要的 然而,我想使用Spring将服务的一个实例注入到我的服务层中——是否有一种纯Spring的方法来实现上述功能 或者,有没有更好的方法将Web服务实例注入到类中,并且仍然能够动态配置端点?使用基于Spring Java的配置: @Configuration public class HelloServiceConfig {

我有一个应用程序试图通过wsdl2java使用生成的类访问Web服务。我希望能够对其进行配置,以便根据环境使用不同的端点(TEST/PROD)

我发现下面的答案正是我想要的

然而,我想使用Spring将服务的一个实例注入到我的服务层中——是否有一种纯Spring的方法来实现上述功能


或者,有没有更好的方法将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方法:-谢谢!