是否可以将Web服务拆分为多个类并仍然提供Web服务的单一路径?
我知道这是不可能的,因为重复的url-pattern值。它有点说明了我们想去的地方:)
<endpoint name="OneBigService"
implementation="SmallImpl1"
url-pattern="/OneBigService"/>
<endpoint name="OneBigService"
implementation="SmallImpl2"
url-pattern="/OneBigService"/>
基本上,如何避免使用一个单片@WebService类?
谢谢!
罗布
答案 0 :(得分:2)
是否可以将Web服务拆分为多个类并仍然提供Web服务的单一路径?
没有。 URI是一个 Web服务(由Port/Endpoint定义)的连接点。
基本上,如何避免使用一个单片@WebService类?
嗯,在我看来,真正的问题是何时应该使用多个端口/端点?我很想回答:逻辑上重新组合/拆分事物。
例如,虽然Calculator
服务有义务公开add
,subtract
,multiply
和divide
操作,但我会使用其他服务公开getQuote
操作。
现在,您始终可以将逻辑拆分为多个类,并从@WebService
委托给他们。
答案 1 :(得分:1)
您可以将功能委派给Web服务类的组合类:
@WebService
public class OneBigService {
ISmall delegate = new SmallImpl1(); // or new SmallImpl2();
@WebMethod
public Result webMethodStuff() {
// do something with delegate
}
}