动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息



本月文章推荐
.ChartDirector柱状图使用方法.
.Tomcat中怎样设置虚拟目录.
.JAVA实现服务器和多用户跨平台的.
.JBuilder2005单元测试之业务类介.
.详解Java语言入门级十二大特色.
.Struts应用程序的流程控制简介.
.浅析Java语言中两种异常的差别.
.Java中C/S通讯程序设计一例.
.用 JAAS 和 JSSE 实现Java 安全性.
.tomcat的sqlserver数据源的配置.
.在 Java 应用程序中计划重复执行.
.java和c++比较(1)--虚函数和指针.
.J2EE、CORBA、DNA三种主流中间件.
.Java 图形用户界面设计.
.开源框架Hibernate 3 的Formulas.
.Java编程基础.
.在Java中应用设计模式之Factory .
.SunStorEdgeInstantImage?操作.
.面向服务架构(SOA)推荐方法(组.
.Effective java学习笔记1:考虑使.

Weblogic Server ant开发Web Service二(图)

发表日期:2008-1-5 |



  3、在VB下调用Web Service
  
  下面我在VB环境下来调用下这个Web Service,笔者使用的是Visual Basic 6.0,要在VB下调用Web Service需要先安装Microsoft SOAP toolkit。
  
  新建一个VB工程,然后把Microsoft Soap Type Library引用进来,如下图:
  
 Weblogic Server ant开发Web Service二(图)(图一)


  新建一个form1,添加一个按钮command1,在form1源代码窗口中整个拷贝如下代码:
  
  Dim soap As MSSOAPLib.SoapClient
  Private Sub Command1_Click()
  
  MsgBox soap.sayHello()
  MsgBox soap.welcome("老Z")
  
  If Err <> 0 Then
  MsgBox "Web Service调用失败: " + Err.Description
  End If
  End Sub
  
  Private Sub Form_Load()
  Set soap = New MSSOAPLib.SoapClient
  
  On Error Resume Next
  
  Call soap.mssoapinit("http://localhost:7001/WSDemo/HelloWorldWS?WSDL")
  
  If Err <> 0 Then
  MsgBox "初始化SOAP失败: " + Err.Description
  End If
  
  End Sub
  
  然后运行工程,点击窗口上的按钮就开始调用前面部署的Web Service(确保Weblogic Server在运行中),成功的话会得到如下图的两个MessageBox:
  
 Weblogic Server ant开发Web Service二(图)(图二)
   Weblogic Server ant开发Web Service二(图)(图三)

  四、使用非内建数据类型
  
  前面例子中的Web Service方法中使用的参数和返回值都是String,类似String,int等数据类型是属于Weblogic web service所支持的内建类型,关于Weblogic web service所支持的内建数据类型请参见:http://e-docs.bea.com/wls/docs81/webserv/implement.Html#1054236
  
  所支持的XML非内建类型请参见:
  
  http://e-docs.bea.com/wls/docs81/webserv/assemble.html#1060805
  
  所支持的Java非内建数据类型请参见:
  
  http://e-docs.bea.com/wls/docs81/webserv/assemble.html#1068595
  
  WebLogic Server能够对内建数据类型进行XML与Java表示之间的转换。但是,假如你在web service操作中使用了非内建数据类型,那么你必须提供以下信息,以确保weblogic server能够正确地进行转换。
  
  用于处理数据的Java表示与XML之间的转换的序列化类;
  
  包含了数据类型Java表示的Java类;
  
  数据类型的XML Schema表示;
  
  web-services.xml部署描述文件中的数据类型映射信息。
  
  Weblogic Server中带有servicegen和autotype Atn任务,这两个任务通过对web service的无状态EJB或者Java类后端组件的内省,从而自动生成上述部件。上述Ant任务能够处理许多非内建数据类型,所以大多数的开发者并不需要手工生成上述的部件。
  
  有时,你可能也需要手工去创建非内建数据类型部件。因为你的数据类型可能很复杂,以致Ant任务不能正确生成前述部件。你也可能想要自己控制数据在XML和Java表示之间的转换过程,而不依靠Weblogic Server所使用的缺省转换程序。
  
  本节将演示在Weblogic web service中如何处理非内建(自定义)的数据类型。
  
  我们先编写一个数值Bean类UserInfo,如下:
  
  package com.wnetw.ws.demo;
  
  import java.util.*;
  
  public class UserInfo{
  private Integer userid;
  private String username;
  private String sex;
  private Date birthday;
  private int level;
  private double salary;
  private telcodes list;
  
  public UserInfo(){}
  
  public Integer getUserid(){
  return userid;
  }
  
  public void setUserid(Integer userid){
  this.userid = userid;
  }
  
  public String getUsername(){
  return username;
  }
  
  public void setUsername(String username){
  this.username = username;
  }
  
  public String getSex(){
  return sex;
  }
  
  public void setSex(String sex){
  this.sex = sex;
  }
  
  public Date getBirthday(){
  return birthday;
  }
  
  public void setBirthday(Date birthday){
  this.birthday = birthday;
  }
  
  public int getLevel(){
  return level;
  }
  
  public void setLevel(int level){
  this.level = level;
  }
  
  public double getSalary(){
  return salary;
  }
  
  public void setSalary(double salary){
  this.salary = salary;
  }
  
  public List getTelcodes(){
  return telcodes;
  }
  
  public void setTelcodes (List telcodes){
  this. telcodes = telcodes;
  }
  
  }
  
  在前文中的后端组件类HelloWorldWS.java中增加一个方法:
  
  public UserInfo getUserInfo(Integer userid){
  UserInfo userinfo = new UserInfo();
  userinfo.setUserid(userid);
  userinfo.setUsername("李泽林");
  userinfo.setSex("男");
  userinfo.setBirthday(new Date());
  userinfo.setLevel(2);
  userinfo.setSalary(1000.51);
  List telcodes = new ArrayList();
  telcodes.add("123");
  telcodes.add("321");
  userinfo.setTelcodes (telcodes);
  return userinfo;
  }
  
  在这个方法里,返回值是UserInfo,这是我们前面定义的数值Bean,由于这是非内建类型,而且也不属于受支持的非内建类型,所以需要我们必须自己来处理XML和UserInfo Java表示数据类型之间的转换。
  
  在本文的例子中,我们使用Weblogic Server的autotype任务来做这件事情。我们先在build目录建一个autotype目录,然后在前文中ant完整脚本中的compile任务之后增加下述脚本:
  
  <target name="gentypeinfo">
  <autotype javatypes="com.wnetw.ws.demo.UserInfo"
  targetNamespace=""
  packageName="com.wnetw.ws.demo"
  destDir="/autotype"
  keepGenerated="true">
  <classpath refid="classpath"/>
  </autotype>
  <copy todir="/classes">
  <fileset dir="/autotype">
  <include name="**/*.class"/>
  </fileset>
  </copy>
  </target>  
  
  autotype Ant任务有几个常用属性,下面简要说明下:
  
  javatypes:需要进行类型转换的非内建(自定义)数据类型java类,注重取值是全限定类名,不需要带上java或者class扩展名。假如存在多个这样的数据类型类,用逗号“,”隔开;
  
  targetNamespace:在对数据类型映射到XML的时候使用的命名空间;
  
  packageName:生成的序列化相关类的封装包;
  
  destDir:生成的序列化相关类存放的目录;
  
  keepGenerated:是否保留中间java源文件,取值为:true或者false。
  
  关于autotype任务的具体信息请参考:
  
  http://e-docs.bea.com/wls/docs81/webserv/anttasks.html#1080062
  
  上述ant任务成功运行后就会生成build/autotype/目录下生成types.xml文件以及按包封装的数据转换类的源文件和class文件。
  
  由于增加了自定义数据类型,所以我们还得更新source2wsdd任务脚本,以下是增加了自定义数据类型处理后的source2wsdd任务脚本:
  
  <target name="genwsdd">
  <source2wsdd javaSource="/com/wnetw/ws/demo/HelloWorldWS.java"
  typesInfo="/autotype/types.xml"
  ddFile="/wsddfiles/web-services.xml"
  wsdlFile="/wsddfiles/HelloWorldWS.wsdl"
  serviceURI="/HelloWorldWS">
  <classpath refid="classpath"/>
  </source2wsdd>
  </target>
  
  跟以前的脚本相比,增加了typesInfo属性来指定自定义数据类型的XML描述文件。
  
  增加了对自定义数据类型支持后的完整脚本请参考本文代码下载文件。
  
  按照第一节所述方法运行ant脚本build_wls_all.xml后,再部署buildpplications目录下的HelloWorldWS.ear。就可以按照以前说的方法进行测试了。
  
  这一次在Weblogic Server自动生成的web service测试主页:
  
  http://localhost:7001/WSDemo/HelloWorldWS
  
  可以发现多了一个叫getUserInfo的方法连接,进入此方法的调用测试页面,调用此方法后就可以看到此web service方法的调用结果,以下是结果截图:
  
 Weblogic Server ant开发Web Service二(图)(图四)

  从调用测试结果页面可以看到,这一次的Return Value是:
  
  com.wnetw.ws.demo.UserInfod235
  
  这正是我们的web service方法返回值类型类型的一个对象,图中的下面也以SOAP消息的形式描述了调用的输入和返回结果。
  
  我们接着修改测试类HelloWorldWSTest.java,
上一篇:Ant+JMeter进行Web应用的稳定性测试 人气:481
下一篇:轻量级IoC容器来扩展ANT享受SPRING(图) 人气:354
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵