【问题标题】:Spring-ws: Multiple endpoints/wsdl/xsd/you-name-itSpring-ws:多个端点/wsdl/xsd/you-name-it
【发布时间】:2011-10-13 06:48:32
【问题描述】:

信息:我正在使用 Spring-ws 1.5.9 和 Spring 2.5.6

我目前正在构建大量 Web 服务,并且对架构应该如何提出一些问题。

现在我只有一个网络服务。它(当然)包含一个 wsdl 和一个端点等等。

我目前正在扩展 Web 服务,并在那里创建了另一个 xsd、使用 JAXB2 (xjc) 等的自动生成代码。

现在,我应该如何处理这些 xsd、wsdl(s)、代码等等?我看不到 Spring-ws 的推荐...

我的架构师想要一个单一的 wsdl,可以使用以下方式实现:

<bean id="schemaCollection" class="org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection">
<property name="xsds">
    <list>
        <value>one.xsd</value>
        <value>two.xsd</value>
    </list>
</property>
<property name="inline" value="true"/>

这是一个好方法吗?我最终会得到 10-15 个 Web 服务,因此是一个大型 wsdl。

端点呢?我应该创建一个端点并测试请求的类型(例如使用 instanceof)吗?我自己认为将一个端点映射到一个请求更优雅/干净。

最后,编组呢?我有这个(有一个 ws/schema):

    <oxm:jaxb2-marshaller id="marshaller" contextPath="mydomain.signals.one.v1_0.schemas"/>
<oxm:jaxb2-marshaller id="unmarshaller" contextPath="mydomain.signals.v1_0.schemas"/>

但是,我应该如何为此添加另一个架构?我正在尝试类似以下的方法,但现在似乎对我不起作用:

    <bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    <property name="contextPaths">
        <list>
            <value>mydomain.signals.one.v1_0.schemas</value>
            <value>mydomain.signals.two.v1_0.schemas</value>
        </list>
    </property>
</bean>

我希望这是有道理的。我的目标是关于我应该做什么的指针和提示。

【问题讨论】:

    标签: xsd wsdl spring-ws endpoint


    【解决方案1】:

    如果您有 10 到 15 个 Web 服务,那么没有庞大的 wsdl 是不可能的。如果目标是单个 wsdl,那么您所做的似乎是可以接受的。

    我希望每个请求都有端点。

    另外,您是否尝试过为上下文路径使用冒号分隔的值列表?所以,不要使用列表,只需一个长字符串,每个上下文路径用冒号分隔。

    来自 Spring-WS 文档:

    上下文路径是一个冒号 (:) 分隔的 Java 包名列表 包含架构派生类。

    我知道该段落适用于 Jaxb1,但我很确定它仍然适用于 Jaxb2Marshaller。如果您指定类,我认为您只会使用列表变体。

    http://static.springsource.org/spring-ws/site/reference/html/oxm.html

    【讨论】:

    • 是的,我发现了带有冒号的部分,尽管这使得 xml 非常不可读(随着时间的推移,它会变得很糟糕)。
    • 这不是最优雅的东西,但如果你只是把每一个都放在一个新的行上,它应该仍然很可读。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多