使用 JwsContext 访问有关Weblogic Web Service 的运行时信息

来源:互联网 发布:合肥seo整站优化 编辑:程序博客网 时间:2024/05/22 10:45
当客户端应用程序调用使用 JWS 文件实现的 WebLogic Web Service 时,WebLogic Server 会自动创建一个上下文,Web Service 可以使用该上下文来访问有关该服务的运行时信息,有时还可以更改这些信息。此信息主要与对话相关,例如当前对话是否已完成、对话属性的当前值以及在运行时更改对话属性等。(有关对话和如何实现对话的信息,请参阅创建对话 Web Service。)可以通过该上下文访问的某些信息更为通用,如用于调用该 Web Service 的协议(HTTP/S 或 JMS)、SOAP 消息请求中的 SOAP 头等。

可以在 JWS 文件中使用批注和 WebLogic Web Service API 访问运行时上下文信息,如下列部分所述。

访问 Web Service 上下文的准则

下例说明使用上下文确定用于调用 Web Service 的协议的简单 JWS 文件;该示例之后的编程准则中将讨论用粗体显示的代码。

package examples.webservices.jws_context;
import javax.jws.WebMethod;
import javax.jws.WebService;
import weblogic.jws.WLHttpTransport;
import weblogic.jws.Context;
import weblogic.wsee.jws.JwsContext;
import weblogic.wsee.jws.Protocol;
@WebService(name="JwsContextPortType", serviceName="JwsContextService",
targetNamespace="http://example.org")
@WLHttpTransport(contextPath="contexts", serviceUri="JwsContext",
portName="JwsContextPort")

* 说明如何使用 @Context 批注的简单 Web Service。
public class JwsContextImpl {
  @Context
private JwsContext ctx;
  @WebMethod()
public String getProtocol() {
    Protocol protocol = ctx.getProtocol();
    System.out.println("protocol: " + protocol);
return "This is the protocol: " + protocol;
}
}

使用 JWS 文件中的下列准则访问 Web Service 的运行时上下文,如上例中用粗体显示的代码所示:

  • 导入 @weblogic.jws.Context JWS 批注:
  • import weblogic.jws.Context;
  • 导入 weblogic.wsee.jws.JwsContext API 以及可能使用的所有其他相关 API(该示例还使用 weblogic.wsee.jws.Protocol API):
  • import weblogic.wsee.jws.JwsContext;
    import weblogic.wsee.jws.Protocol;

    有关上下文相关 API 的参考文档,请参阅weblogic.wsee.* Javadocs。

  • 使用字段级 @Context JWS 批注对 weblogic.wsee.jws.JwsContext 数据类型的私有变量进行批注:
  •  @Context
    private JwsContext ctx;

    第一次调用 Web Service 时,WebLogic Server 自动为已批注变量(在该例中为 ctx)分配 JwsContext 运行时实现,所以,以后无需在代码中明确初始化该变量即可以使用它。

  • 使用 JwsContext 类的方法获取和在某些情况下更改有关 Web Service 的运行时信息。下例说明如何获取用于调用 Web Service 的协议:
  • Protocol protocol = ctx.getProtocol();
原创粉丝点击