2

我有两个模式和两个端点,目前我只有一个 servlet。有没有办法可以将两种模式都添加到一个 servlet 中?还是我必须添加第二个 servlet。

我看到的其他可能性涉及将两个两个模式组合成一个模式,我的问题是我不希望人们能够看到第二个模式的内容。解决此问题的最佳方法是什么。

对此的任何建议都会很有用,我已经找到了建议,但没有什么可以说最好的方法是什么。

目前我有一个使用simpleXsdSchema

 <bean id="schema" class="org.springframework.xml.xsd.SimpleXsdSchema" 
        p:xsd = "classpath:au/test/Search/ws/schemas/Search.xsd"/>

我想做这样的事情:

<bean id="schema" class="org.springframework.xml.xsd.SimpleXsdSchema">
    <property name="schema">
        <list>
            <value>
                classpath:au/test/Search/ws/schemas/Search.xsd
            </value>
            <value>
                classpath:au/test/Search/ws/schemas/admin/SearchAdmin.xsd
            </value>
        </list>
    </property>
</bean>
*i am aware this does not work

但我不确定这是否是解决此问题的正确方法。

4

2 回答 2

1

经过更多研究,可以使用模式集合类声明多个模式,需要导入 xmlschema 框架。

<bean id="schemaCollection"
    class="org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection">
    <property name="xsds">
        <list>
            <value>au/test/Search/ws/schemas/admin/SearchAdmin.xsd</value>
            <value>au/test/Search/ws/schemas/Search.xsd</value>
        </list>
    </property>
    <property name="inline" value="true" />
</bean>

就我而言,这不是我发现的最好的方法,而是声明两个 servlet 是最好的做法。

于 2012-09-17T23:01:59.703 回答
1

我不是你需要的 100%,但在 Servlets 中,你可以使用部署描述符 ( web.xml) 定义多个指向同一个 servlet 的端点,如下所示:

<servlet>
  <servlet-name>Servlet1</servlet-name>
  <servlet-class>Servlet.java</servlet-class>
</servlet>
....
<servlet-mapping>
  <servlet-name>Servlet1</servlet-name>
  <url-pattern>/endpoint1</url-pattern>
  <url-pattern>/endpoint2</url-pattern>
</servlet-mapping>

然后在 Servlet 代码中,您可以定义应用程序逻辑(如果请求来自endpoint1您可以显示与来自的内容不同的内容 endpoint2

于 2012-09-17T05:59:37.323 回答