【问题标题】:Disabling deployed Web services through Java code通过 Java 代码禁用已部署的 Web 服务
【发布时间】:2012-03-30 08:05:08
【问题描述】:
我使用部署在 Glassfish Web 服务器和 Netbeans IDE 上的 JAX-WS Web 服务。我们提供了使用 IDE 中的管理控制台或服务选项卡禁用或取消部署部署到 Glassfish Web 服务器上的 Web 服务的规定。这看起来是某种硬件中断。我想实现相同的目标,即通过 Java 代码禁用已部署的 Web 服务,在接口的一些外部命令上。是否有任何机制可以通过软件中断或任何其他方式获得这样的结果?
【问题讨论】:
标签:
web-services
glassfish
jax-ws
【解决方案1】:
您可以在服务器端保留诸如 discoveryAllowed 属性之类的配置设置,这可能与 DB 中的一样。
您可以决定是否允许用户调用网络方法。在 web-method 中添加如下代码:
如果 discoveryAllowed 为 false 则调用以下代码:
MessageContext mc = context.getMessageContext();
HttpServletResponse resp = (HttpServletResponse) mc.get(MessageContext.SERVLET_RESPONSE);
resp.setContentType("text/plain");
resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Web service is disabled.");
如果 discoveryAllowed 为 true,则允许继续执行代码。