zoukankan      html  css  js  c++  java
  • 基于web工程上写webservice

    webservice---基于web工程上写webservice

     

    本节摘要:之前在一篇博客中介绍过如何写一个webservice(http://www.cnblogs.com/java-pan/archive/2011/11/25/axis_webservice.html),不过那个webservice是在工作项目中直接添加的,中间少了很多麻烦,不是白手起家总感觉前面一步一步的过程不清楚。myeclipse自带的也有如何新建一个webservice工程,这也不是我要说的,项目中这个也不实用,项目中都是在当前开发的web工程中写一个webservice,谁会再去新建一个工程,那不是扯淡吗?本节在一个已经存在的web工程中,来新建类、新建配置文件,发布webservice、访问webservice。基于axis1.4的版本来完成的。

    preparation

    1.在阅读本机之前你需要看以下相关知识:

    JDBC;

    JDBC的介绍这里就不说了,网上忒多的资料了,这个也是做java接触数据库时必会的

    ibatis;

    可以参考我之前的博客http://www.cnblogs.com/java-pan/archive/2012/03/21/ibatis.html

    XStream;

    可以参考我之前的博客http://www.cnblogs.com/java-pan/archive/2011/10/25/Object_xml.html

    axis;

    可以参考我之前的博客http://www.cnblogs.com/java-pan/archive/2011/11/25/axis_webservice.html

    2.项目结构

    myeclipse:6.5  tomcat:5.0  system:win7 JDK:项目的版本是1.5 编译采用的是1.4 

    说明:本节介绍的是基于axis的webservice,采用的版本为axis1.4

    3.下载项目中用到的jar包

     https://files.cnblogs.com/java-pan/lib-axis1.4.rar

    以上链接包含下面的所有包。下载的jar包主要包含以下几部分:

    (1)oracle数据库驱动包 :classes12.jar

    (2)ibatis包:ibatis-2.3.4.jar

    (3)xstream-1.2.1.jar

    (4)axis包(从以下链接下载http://mirror.bjtu.edu.cn/apache/ws/axis/1_4/ 下载后解压把lib下所有包导入)

    (5)activation.jar和mail.jar 建议导入的包

    以上除最后一个jar包外,其它的程序运行必须导入。(可能axis不需要导入所有的包,不过我们就全部导入好了)

    项目jar包的详细列表如下:

    说明:lib下一共中13个jar包,截图的图片也有13个jar包,但是博客发布后显示的只有8个jar包,可以图片另存为看到所有的jar包。

    4.class&mthod

    JDBC:DriverManager、Connection、PreparedStatement、ResultSet

    DriverManager:

    getConnection(String url, String user, String password)获得一个Connection对象,参数依次为数据库驱动的url、用户名、密码

    Connection:

    prepareStatement(String sql)获得一个预处理对象PreparedStatement

    PreparedStatement:

    executeQuery()执行查询操作,返回一个结果集对象ResultSet,不要传入任何参数

    ResultSet:

    next()返回一个布尔类型的值,用于判断是否还有记录

    Ibatis:SqlMapClient、SqlMapClientBuilder

    SqlMapClient:

    SqlMapClient buildSqlMapClient(Reader reader)传入一个reader对象,创建一个SqlMapClient 对象

    startTransaction();开始事务

    getCurrentConnection()获取当前连接,回滚事务的时候用到

    endTransaction结束事务

    SqlMapClientBuilder:

    queryForObject(String s, Object obj)第一个参数为实体类对应的配置文件的id属性,第二个为传入的参数,此方法的返回值是一个Object对象

    xstream:XStream

    XStream:

    alias(String name, Class type)设置节点的别名

    alias(String name, Class type)设置某一元素节点的别名

    toXML(Object obj)把对应的obj转换为xml格式的字符串

    其他类:Reader、Resources、StringBuffer

    Reader:java I/O对象,用于读取字符流的抽象类,这里就不再介绍,请查看JDK帮助文档

    Resources:此类为ibatis的jar包中的类,非JDK的类

    getResourceAsReader(String resource)对于resource路径的文件,获得一个Reader对象

    StringBuffer:线程安全的可变字符序列

    append(String str)将指定的字符串追加到此字符序列

    toString()返回此序列中数据的字符串表示形式

    start

    新建一个web工程,项目命名为WebService,按照工程目录新建对应的文件如下:

    实体类-Dept.java

    Dept

    数据库连接文件-ConnectDataBase.java

    ConnectDataBase

    实体类对应的映射文件-Dept.xml

    Dept

    数据库连接属性文件-SqlMap.properties

    SqlMap.properties

    ibatis核心配置文件-SqlMapConfig.xml

    SqlMapConfig.xml

    定义查询服务的接口文件-IQueryInfoSV.java

    IQueryInfoSV

    定义查询服务的实现类-QueryInfoSVImpl.java

    QueryInfoSVImpl

    测试类-Test1.java 用于测试JDBC和ibatis的数据库连接是否正常

    Test1

    测试类-Test2.java 用于测试webservice服务是否可以正常调用

    Test2

    web.xml-项目配置文件

    Web.xml

    server-config.wsdd-webservice服务部署的配置文件

    server-config.wsdd

    ---把博客贴出来主要是请大家帮看看后面的问题,关于配置文件的介绍后面会加上详细的说明---

    result

    发布项目,启动tomcat。
    运行Test1.java中的main方法,测试JDBC和ibatis数据库查询是否正常,查询结果如下:

     在浏览器访问发布的wsdl

    输入如下地址:http://127.0.0.1:8080/WebService/services/queryInfo?WSDL

    访问界面如图:

     运行Test2类中的main方法,测试结果如下图:

    webservice服务存在以下2个问题:

    (1)如上图所示,按说在浏览器中可以正常的访问wsdl的话,就说明服务已经发布好了。为什么客户端调用会报如此错误呢?

    (2)如果我把访问的127.0.0.1改为localhost就不能正常的访问wsdl了,这个是什么原因呢?

    急需大虾出现解决小弟的问题,我也在努力的查找中。跪求ing。

    为方便各位大侠帮小弟查问题,源码下载地址如下:https://files.cnblogs.com/java-pan/WebService.rar

     
    标签: webservice
  • 相关阅读:
    (转)android res文件夹里面的drawable(ldpi、mdpi、hdpi、xhdpi、xxhdpi)
    ListView模拟微信好友功能
    最小生成树(普利姆算法、克鲁斯卡尔算法)
    Android Afinal框架学习(二) FinalActivity 一个IOC框架
    浅谈WebLogic和Tomcat
    变量定义和声明的差别(整理)
    浏览器内核分类
    设计模式 之 享元
    FPGA中浮点运算实现方法——定标
    兔子--Android中的五大布局
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2478569.html
Copyright © 2011-2022 走看看