2009-08-12 41 views
1

我在同一台服务器上托管了几个JAX-WS Web服务。它们使用相同的实体对象,但是当Web服务被客​​户端使用时,反射的实体对象在Web服务之间总是不同的。跨不同的JAX-WS Web服务使用公共实体类

如何强制所有客户端在多个Web服务中将实体对象标识为相同的数据类型?

即Web服务StudentAdministration 和 webservice.Student类Web服务ClassAdministration

webservice.Student类是站在消费者的角度来看这两个不同的对象。如何更改我的Web服务以暴露webservice.Student类,让消费者知道两者是相同的实体类型,即使它们是从不同的Web服务公开的?

回答

1

你需要在一个XML模式定义的公共实体如下所述:

https://jax-ws.dev.java.net/guide/Compiling_multiple_WSDLs_that_share_a_common_schema.html

+0

在这种情况下,是有可能做的Web服务端凡是能引起消费者的生成类在所有Web服务中都是一样的? 我认为http://forums.java.net/jive/thread.jspa?threadID=28673中的最后一篇文章与我想要做的事情有关,但我并不真正了解我将如何去做包括作者在内部的2个文件 – pkchukiss 2009-08-12 20:54:15

+0

这应该工作的方式是每个服务的WSDL应引用相同的模式。当您为每个服务(从WSDL)生成存根时,将根据公共模式生成相同的类。这些相同的类然后可以由每个消费者共享。这是有道理的,还是我错过了什么? – 2009-08-13 07:18:10

+0

如果WSDL由JAX-WS根据端点类自动生成,该怎么办?我们有一个类似的情况,我们有多个共享公共实体的端点。 wsimport将每组类(对于每个端点)放在一个单独的包中,但是我们希望通用类处于不同的“公共”包中。 – GaZ 2011-04-06 11:28:57