2012-09-17 3 views
2

두 개의 스키마와 두 개의 끝점이 있으며 현재 하나의 서블릿 만 있습니다. 한 서블릿에 두 스키마를 모두 추가 할 수있는 방법이 있습니까? 아니면 두 번째 서블릿을 추가해야합니까?단일 서블릿에 여러 스키마 추가

두 가지 스키마를 하나의 스키마로 결합하는 다른 가능성이 있습니다. 여기서 제 문제는 사람들이 두 번째 스키마의 내용을 볼 수 없게하려는 것입니다. 이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

이 제안에 대한 제안은 유용 할 것입니다. suggesions을 찾았지만 이것을 수행하는 가장 좋은 방법은 무엇인지 말할 것도 없습니다. 이 약 갈 수있는 올바른 방법 인 경우

<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 

하지만 정말 확실하지 메신저 :

현재 난 내가 이런 일을하고 싶어 simpleXsdSchema

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

사용하는 단일 서블릿을 이.

답변

1

를 (요청이 endpoint1에서 오는 경우가 endpoint2에서 오는에서 다른 내용을 표시 할 수 있습니다) 애플리케이션 로직을 정의 할 수 있습니다, 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 개의 서블릿을 선언하는 것이 가장 좋은 방법이었습니다.

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> 

을 스키마 컬렉션 클래스를 사용하여 선언 할 수 있습니다 더 많은 연구가 여러 스키마의 후

+0

감사합니다. 나는 이것이 가능하다는 것을 알고 있습니다. 나는 내가 한 일을하는 가장 좋은 방법이 무엇인지 몰랐다. –

관련 문제