在Spring中生成多个SOAP web服务

在Spring中生成多个SOAP web服务,spring,web-services,soap,Spring,Web Services,Soap,下面是一个关于如何在Spring中生成SOAP web服务的好例子: 这个例子展示了如何获得一个端点和一个服务。如何使用多个服务和端点获得相同的结果?基于您的示例,您需要做的就是向WebServiceConfig添加以下方法: @Bean(name = "webservice2") public DefaultWsdl11Definition webservice2Wsdl11Definition(XsdSchema webservice2Schema) { DefaultWsdl11

下面是一个关于如何在Spring中生成SOAP web服务的好例子:


这个例子展示了如何获得一个端点和一个服务。如何使用多个服务和端点获得相同的结果?

基于您的示例,您需要做的就是向
WebServiceConfig
添加以下方法:

@Bean(name = "webservice2")
public DefaultWsdl11Definition webservice2Wsdl11Definition(XsdSchema webservice2Schema) {
    DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
    wsdl11Definition.setPortTypeName("webservice2Port");
    wsdl11Definition.setLocationUri("/ws");
    wsdl11Definition.setTargetNamespace("your namespace");
    wsdl11Definition.setSchema(webservice2Schema);
    return wsdl11Definition;
}

@Bean(name="webservice2Schema")
public XsdSchema webservice2Schema() {
    return new SimpleXsdSchema(new ClassPathResource("webservice2.xsd"));
}
当然还有创造

@Endpoint
public class Webservice2Endpoint

您可以在一个模块中使用任意数量的Web服务。

好的,看来这两个答案都是正确的。我用Mike Adamenkos的答案加上一点额外的标签来让它工作

@Bean(name = "webservice2")
public DefaultWsdl11Definition defaultWsdl11Definition(@Qualifier("Name") XsdSchema webservice2Schema) {
    DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
    wsdl11Definition.setPortTypeName("webservice2Port");
    wsdl11Definition.setLocationUri("/ws");
    wsdl11Definition.setTargetNamespace("your namespace");
    wsdl11Definition.setSchema(webservice2Schema);
    return wsdl11Definition;
}

@Bean(name = "Name2")
public XsdSchema webservice2Schema() {
    return new SimpleXsdSchema(new ClassPathResource("webservice2.xsd"));
}

因此,您需要为
XsdSchema
方法添加名称值,以便在
DefaultWsdl11Definition
中使用
@Qualifier
标记获得正确的方法。希望这有帮助

创建多个模块一个模块(你需要的每个web服务都有spring应用)嗯,最后我需要很多端点,为每个服务创建一个模块似乎太多了。希望,有一个更简单的方法:)如何在没有配置文件的情况下获得相同的结果?我只在java中使用Spring标记。这不起作用。无法定义相同类型的Bean。请添加@Bean(name=“webservice2Schema”)。我已经更新了答案。对我来说,它没有特定的标签。。。但您只讨论wsdl生成(这是DefaultWSDL11定义所做的)。这里我有一个servlet映射问题:有两个(或更多)Web服务假设不同的映射。这意味着不同的MessageDispatcherServlet……但我不能让Spring部署多个servlet,因为MessageDispatcherServlet都有相同的名称。