Как Spring WebApp управляет запросами разных клиентов? - PullRequest
0 голосов
/ 20 мая 2011

вероятно, есть много людей, которые будут улыбаться, читая этот вопрос ...

Вот моя проблема.У меня есть веб-приложение Spring 3, действующее как клиент и сервер.Он получает некоторые данные XML от клиента "C", обрабатывает их и отправляет на сервер "S".Входной XML-файл C должен быть проверен по схеме (например, «c.xsd»), в то время как выходной XML-файл S должен быть проверен по другой (например, «s.xsd»).

I'mиспользование jaxb2 для маршаллинга и демаршаллинга.

В документации я прочитал, что можно установить атрибут "схема" для [un] /marshaller.

Поэтому мне нужно иметьa.xsd для проверки, когда я получаю входные данные, и b.xsd, когда я создаю вывод ... вопрос заключается в следующем: когда я переключаю схему проверки с c, xsd на s.xsd (производя вывод после обработкизапрос от C), я могу изменить статус сервера?Другими словами, если я получаю второй запрос от клиента C2, когда я обрабатываю первый запрос от C, я попытаюсь проверить входные данные C2 по s.xsd?Будет ли приложение автоматически помещать запрос C2 в другой поток?Если нет, то как я могу настроить Spring для этого?

Спасибо большое!

1 Ответ

2 голосов
/ 20 мая 2011

Я сделаю удар:

Входной XML-файл C должен быть проверен для схемы (например, "c.xsd")

Вы можете сделать это, установив схему (c.xsd) в Unmarshaller.

в то время как выходной XML для S должен быть проверено против другого (например, "s.xsd").

Вы можете сделать это, установив схему (s.xsd) на Marshaller.

когда я переключаю схему проверки от c, xsd до s.xsd (производя вывод после обработки запроса от В), могу ли я изменить статус Сервер

Нет, потому что Unmarshaller всегда использует c.xsd, а маршаллер всегда использует s.xsd.

Поскольку Marshaller и Unmarshaller не являются потокобезопасными, вы должны быть уверены, что не делитесь ими между потоками.

...