目前,我们应用程序的每个 Web 服务都有一个为每个方法添加的用户参数。例如:
@WebService
public interface FooWebService {
@WebMethod
public Foo getFoo(@WebParam(name="alwaysHere",header=true,partName="alwaysHere") String user, @WebParam(name="fooId") Long fooId);
@WebMethod
public Result deletetFoo(@WebParam(name="alwaysHere",header=true,partName="alwaysHere") String user, @WebParam(name="fooId") Long fooId);
// ...
}
一个服务中可能有二十个方法,每个方法的第一个参数都是用户。并且可能有二十个网络服务。
我们实际上并没有在实现中使用“用户”参数——事实上,我不知道它为什么存在——但我没有参与设计,把它放在那里的人是有原因的(我希望)。
无论如何,我正试图理顺这个大泥球。
通过使用 Spring 代理包装 Web 服务,我已经取得了长足的进步,它允许我在拦截器中进行一些前后处理(在每个方法至少有 20 行复制粘贴的样板代码之前)。
我想知道是否有某种“消息头”可以应用于方法或包,并且可以由某种类型的处理程序或每个 Web 服务方法之外的东西访问。
提前感谢您的建议,LES