Spring WebApp如何管理不同的客户端';要求

Spring WebApp如何管理不同的客户端';要求,spring,validation,web-applications,jaxb,spring-ws,Spring,Validation,Web Applications,Jaxb,Spring Ws,也许有很多人会笑着读这个问题 这是我的问题。 我有一个Spring3Web应用程序,既作为客户端又作为服务器。它从客户机“C”获取一些XML数据,对它们进行处理,然后将它们发送到服务器“S”。 C的输入XML必须根据模式(例如“C.xsd”)进行验证,而S的输出XML必须根据不同的模式(例如“S.xsd”)进行验证 我正在使用jaxb2进行编组和解编组 在文档中,我读到可以为[un]/marshaller设置“schema”属性 因此,当我得到一个输入时,我需要一个a.xsd用于验证,当我产生一

也许有很多人会笑着读这个问题

这是我的问题。 我有一个Spring3Web应用程序,既作为客户端又作为服务器。它从客户机“C”获取一些XML数据,对它们进行处理,然后将它们发送到服务器“S”。 C的输入XML必须根据模式(例如“C.xsd”)进行验证,而S的输出XML必须根据不同的模式(例如“S.xsd”)进行验证

我正在使用jaxb2进行编组和解编组

在文档中,我读到可以为[un]/marshaller设置“schema”属性

因此,当我得到一个输入时,我需要一个a.xsd用于验证,当我产生一个输出时,需要一个b.xsd用于验证。。。问题如下: 当我将验证模式从c、xsd切换到s.xsd(在处理来自c的请求后生成输出)时,我是否更改了服务器的状态?换句话说,如果我在处理来自C的第一个请求时收到来自客户机C2的第二个请求,我是否会尝试根据s.xsd验证C2输入?应用程序会自动将C2请求放在不同的线程上吗?如果不是,我如何配置spring来实现这一点


非常感谢

我试试看:

必须验证C中的输入XML 针对模式(例如“c.xsd”)

可以通过在解组器上设置模式(c.xsd)来实现这一点

而输出到S的XML必须是 根据另一个进行验证 (例如“s.xsd”)

可以通过在封送拆收器上设置模式(s.xsd)来实现这一点

当我切换验证模式时 从c,xsd到s.xsd(生成 处理来自的请求后的输出 C) ,是否更改 服务器

不,因为解组器总是使用c.xsd,而封送器总是使用s.xsd


由于Marshaller和Unmarshaller不是线程安全的,您必须确保不要在线程之间共享它们。

好的,我明白了。因为我必须响应客户机C,所以我需要一个使用C.xsd的封送器,但它并没有太大的改变。我仍然需要两个不同的jaxbbean实例,问题就解决了。切换到线程管理问题,从你的帖子中我了解到:服务器在一个新线程中管理每个请求,但我必须小心地将共享资源设置为线程安全的,对吗?如果我不这样做,我将使用有状态服务器,以不同的方式管理客户机的请求。