gpt4 book ai didi

java - 如何在同一个 spring-WS 项目中为不同的服务定义单独的 wsdl?

转载 作者:行者123 更新时间:2023-11-29 08:58:48 27 4
gpt4 key购买 nike

我是 Spring -WS 的新手,所以我正在寻找有关 Spring Web 服务的一些建议。

我正在尝试为我公司的产品创建网络服务。针对两个不同的目标有两组服务。但我不想创建两个不同的项目,因为我不想将 2 *.war 传递给客户端,而且在较低级别上有很多相互依赖性。

所以,我想要一些关于如何生成两个(或多个)WSDL 文件的建议/忠告。因此可以从不同位置访问这两个不同的 WSDL 文件。

我尝试只使用一个 servlet,创建并绑定(bind)其中的所有 bean(spring-ws-servlet.xml),并尝试创建两个不同的动态 wsdl(我创建了两个不同的模式文件并为“模式”设置了不同的值).但它没有用。

那么,谁能指导我哪种方式在架构上更好并且符合最佳实践?

提前致谢

现在,我想知道实现此目标的最佳方法是什么。我应该在 web.xml 中定义两个不同的 servlet 并创建两组映射,还是简单地在 *-servlet.xml(spring 映射文件)中定义两个生成不同 wsdl 的 bean,如果那么如何,从而只创建一组映射。

最佳答案

最简单的方法,我猜它是乏味的方法,但我所做的是我为不同的 1+ 服务添加了一个新的 bean;我称之为布线配置文件(也称为 application.xml、spring-config.xml)。

这就是我所拥有的:

<bean id="SmallBusinessAccount" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition" lazy-init="true">
<property name="schemaCollection">
<bean class="org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection">
<property name="inline" value="true" />
<property name="xsds">
<list>
<value>schemas/SmallBusinessAccountSerivceOperations.xsd</value>
</list>
</property>
</bean>
</property>
<property name="portTypeName" value="SmallBusinessAccountService"/>
<property name="serviceName" value="SmallBusinessAccountServices" />
<property name="locationUri" value="/endpoints"/>
</bean>

<bean id="CreditManagement" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition" lazy-init="true">
<property name="schemaCollection">
<bean class="org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection">
<property name="inline" value="true" />
<property name="xsds">
<list>
<value>schemas/CreditManagementServiceOperations.xsd</value>
</list>
</property>
</bean>
</property>
<property name="portTypeName" value="CreditManagementService"/>
<property name="serviceName" value="CreditManagementServices" />
<property name="locationUri" value="/endpoints"/>
</bean>

这将为同一项目中的不同服务实现生成不同的 wsdls。

不知道有没有更好的办法;比如将服务列表注入(inject)单个 bean,为每个服务生成独立的 wsdl。

关于java - 如何在同一个 spring-WS 项目中为不同的服务定义单独的 wsdl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18721604/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com