2

2つのスキーマと2つのエンドポイントがあり、現在、サーブレットは1つしかありません。1つのサーブレットに両方のスキーマを追加する方法はありますか?または、2番目のサーブレットを追加する必要がありますか。

見られる他の可能性には、2つの2つのスキーマを1つのスキーマに結合することが含まれます。ここでの私の問題は、2番目のスキーマのコンテンツを他の人に見られたくないということです。これを行うための最良の方法は何でしょうか。

これに関する提案は、私が提案を見つけたときに役立ちますが、これを行うための最善の方法は何も言うことはありません。

現在、私はを使用する単一のサーブレットを持っています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

私はあなたが必要とするものの100%ではありませんが、サーブレットでは、次のweb.xmlようにデプロイメント記述子()を使用して同じサーブレットを指す複数のエンドポイントを定義できます。

<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>

次に、サーブレットコードでアプリケーションロジックを定義できます(リクエストがから来た場合はendpoint1、から来たものとは異なるコンテンツを表示できます endpoint2

于 2012-09-17T05:59:37.323 に答える
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>

私の場合、これは私が見つけた最善の方法ではなく、代わりに2つのサーブレットを宣言することが最善の行動でした。

于 2012-09-17T23:01:59.703 に答える