科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件在Web服务中使用SDO2.1的动态数据API

在Web服务中使用SDO2.1的动态数据API

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文将说明构建使用动态对象的 Web 服务应用程序所需的步骤,可以下载一个可部署应用程序,以帮助说明如何在 Web 环境中使用动态对象。

作者:Fuhwei Lwo 来源:论坛整理 2007年11月26日

关键字: 软件

  • 评论
  • 分享微博
  • 分享邮件
HelloWorld Web 客户机——Web 服务使用者

  在清单 7 中所示的 Web 服务应用程序的客户机部分中,HelloWorld.jsp 首先使用 HTML

  标记提示用户输入名称。输入了用户全名后,JSP 会转向 Web 服务提供者 (HelloWorldService) 检索用户的问候信息并进行显示。为此,JSP 首先通过调用 CurrentCompositeContext.getContext() 来获取 SCA 组合的上下文。接下来,JSP 按照在 default.scdl 中定义的 SCA 组件名称查找 HelloWorldService。然后,JSP 调用前面部分中描述的 getGreetings 操作。将向 JSP 返回包含三个属性(firstName、lastName 和 greeting)的动态 SDO,以向用户显示。

  清单 7. HelloWorld.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
             pageEncoding="ISO-8859-1" session="true" autoFlush="true"
             isThreadSafe="true" isErrorPage="false"
             import="java.lang.reflect.Method"
             import="java.io.PrintWriter"
             import="java.io.StringWriter"
             import="org.osoa.sca.CurrentCompositeContext"
             import="org.osoa.sca.CompositeContext"
     import="commonj.sdo.DataObject"
     import="commonj.sdo.helper.XSDHelper"
     import="helloworld.HelloWorldService"
            %>
    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <META name="GENERATOR" content="IBM Software Development Platform">
    <TITLE>HelloWorld Dynamic SDO Web Application Sample</TITLE>
    <%
        String name = request.getParameter("name");
    %>
</HEAD>

<BODY>
<H2>HelloWorld Dynamic SDO Web Application Sample</H2>

<P> </P>

<FORM action="HelloWorld.jsp" method="get">Name
    please:    <INPUT type="text" id="i1" name="name"
                                     size="40" maxlength="220"
                                     value="<%= null == name ? "John Doe" : name %>"> <BR>
    <BR>
    <INPUT type="submit" name="submit" value="Submit"></FORM>
<BR>

<%
    try {
        if (null != name) {
            CompositeContext compositeContext = CurrentCompositeContext.getContext();
            System.out.println("compositeContext is: " + compositeContext);
           
// Locate the HelloWorld service
        HelloWorldService helloworldService =
        (HelloWorldService)compositeContext.locateService
        (HelloWorldService.class, "HelloWorldServiceComponentDSDOClient");
       
        // Invoke the HelloWorld service
        DataObject person =
        <HR>

<P><%=person.get("greeting")%> <%=person.get("firstName")%>
 <%=person.get("lastName")%>!!!!
<%}
}catch(Exception e){
    e.printStackTrace();
StringWriter sw= new StringWriter();
PrintWriter pw= new PrintWriter(sw);

e.printStackTrace(pw);
pw.flush();
%>
Whoops!<BR clear="all">
<PRE>
Exception "<%=e.getClass().getName()%>"
Exception message: "<%=e.getMessage()%>"
<BR clear="all">
<%=sw.toString() %>
</PRE>
<%
}%>
</BODY>
</HTML> 

  为了从动态 SDO 检索属性,必须按照与创建数据对象时设置属性类似的方法使用 commonj.sdo.DataObject 接口提供的 API。

  运行示例应用程序的步骤

  随本文提供的 hwddynamicsdo-service.jar 和 hwddynamicsdo-reference.war 示例应用程序包含 HelloWorld Web 服务及客户机应用程序的源代码和二进制文件,可以将其部署在 IBM WebSphere Application Server Version 6.1 Feature Pack for SOA 的 Beta1 版上。示例应用程序提供了本文中的概念的工作示例,遵循了图 2 中所示的关系图。下面的步骤说明了如何安装和运行这些应用程序。在此示例中,WebSphere 实例使用 9080 缺省端口作为 HTTP 端口。(请参见下面的说明。)

  要安装 HelloWorld Web 服务应用程序,请执行以下步骤:

  1. 安装 WAS 6.1。
  2. 安装 IBM WebSphere Application Server Version 6.1 Feature Pack for SOA 的 Beta1 版。
  3. 将 hwddynamicsdo-service.jar 下载到 /installableApps 目录,如 C:/WebSphere/AppServer/installableApps。

  使用以下步骤安装 HelloWorld Web 服务应用程序:

  1. 运行 wsadmin –lang jython –conntype NONE,以进入 wsadmin 控制台。
  2. 运行 AdminTask.listBLAs(),以列出所有已安装的 SOA 应用程序。
  3. 运行 AdminTask.createBLA(‘-name hwdsdo –source C:/WebSphere/AppServer/installableApps/hwddynamicsdo-service.jar’),以安装应用程序。
  4. 运行 AdminConfig.save(),以保存已安装的应用程序配置。
  5. 如果需要删除已安装的 SOA 应用程序,请运行 AdminTask.deleteBLA(‘-blaID WebSphere:appName=hwdsdo’)。
  6. 启动服务器。

  将浏览器指向 http://localhost:9080/HWWSSDO/services。浏览器应该显示图 3 中所示的页面。这表明 HelloWorld Web 服务应用程序在正确运行。

  图 3. 正在运行的 HelloWorld Web 服务

  正在运行的 HelloWorld Web 服务

  要安装 HelloWorld Web 客户机应用程序,请执行以下步骤:

  1. 将浏览器指向 http://localhost:9060/ibm/console/,以启动 WebSphere 管理控制台。
  2. 登录后,选择 Applications,然后选择 Install New Application。这将安装 /installableApps/hwddynamicsdo-reference.war 中的 HelloWorld Web 客户机应用程序,如图 4 中所示。接受所有安装缺省设置。
  3. 选择 Applications,然后选择 Enterprise Applications,以启动应用程序。选中 hwddynamicsdo-reference.war 旁边的复选框,然后单击页面顶部的 Start。
  4. 将浏览器指向 http://localhost:9080/hwddynamicsdo。
  5. 单击 Submit。将看到图 5 中所示的页面。

  图 4. HelloWorld Web 客户机应用程序安装

  HelloWorld Web 客户机应用程序安装

  图 5. 运行 HelloWorld Web 客户机的结果

  运行 HelloWorld Web 客户机的结果

  结束语

  本文简要介绍了服务数据对象,说明了 SDO 的动态和静态数据 API 间的主要区别,并重点说明了使用动态 SDO 来将数据从 Web 服务提供者传输到客户机的应用程序的要点。另外还提供了可部署在 WebSphere Application Server Version 6.1 Feature Pack for SOA 的 Beta1 版上的一个示例应用程序,还对此技术进行了说明。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章