idea建立webservice服务端和客户端程序

@WebService获取数据库数据

idea建立webservice服务端和客户端程序,并把服务端程序放在tomcat

首先要建立服务端程序,再建立客户端程序,再把服务端程序放在tomcat下,最后客户端能够获取到tomcat上webservice的数据就可以了。本文是通过建立webservice服务端程序连接另一服务器上的odbc数据源,通过客户端程序传入sql语句获取到返回的odbc数据。
环境:idea2018+ jdk1.7 32位 +tomcat 7 32位 +odbc数据源32位

一、 建立服务端程序

因为系统需求原因,需要用jdk1.7 32位的环境

  1. 新建project,选择WebServices,版本选择 Apache Axis,download jar包,点击next;
    在这里插入图片描述
  2. 输入项目名称,点击finish;等待jar包自动下载即可。
    在这里插入图片描述
  3. 项目的初始结构如下:
    在这里插入图片描述
  4. 在example目录下新建SssjConn.java文件,注意要加上@WebService()和@WebMethod
package example;

import javax.jws.WebMethod;
import javax.jws.WebService;
import java.sql.*;

@WebService()
public class SssjConn {
   Connection conn = null;// 创建一个数据库连接
   @WebMethod
   public String getResult(String sql){
       // 1.加载驱动,使用反射的知识,现在记住这么写。
       // Class.forName("com.mysql.jdbc.Driver");
       try {
           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");// 加载Oracle驱动程序
       } catch (ClassNotFoundException e) {
           System.out.println("odbc驱动类找不到!");
           throw new ExceptionInInitializerError(e);
       }
       String tempData = "";
       try {
           // 2.使用DriverManager获取数据库连接,
           // 其中返回的Connection就代表了Java程序和数据库的连接
           // 不同数据库的URL写法需要查驱动文档知道,用户名、密码由DBA分配
           System.out.println("开始尝试连接数据库!");
           String url = "jdbc:odbc:sssj";
           try{
               conn = DriverManager.getConnection(url);// 获取连接
           }catch (SQLException e){
               System.out.println("连接失败");
               e.printStackTrace();
           }
           // 3.使用Connection来创建一个Statment对象
           Statement stmt = conn.createStatement();
           // 4.执行SQL语句
           /*
           Statement有三种执行sql语句的方法:
           1、 execute 可执行任何SQL语句。- 返回一个boolean值,
           如果执行后第一个结果是ResultSet,则返回true,否则返回false
           2、 executeQuery 执行Select语句 - 返回查询到的结果集
           3、executeUpdate 用于执行DML语句。- 返回一个整数,
           表被SQL语句影响的记录条数
           */
           ResultSet rs = stmt.executeQuery(sql);

           // ResultSet有系列的getXxx(列索引 | 列名),用于获取记录指针
           // 指向行、特定列的值,不断地使用next()将记录指针下移一行,
           // 如果移动之后记录指针依然指向有效行,则next()方法返回true。
           while (rs.next()) {
               System.out.println(rs.getString(1));
               tempData = rs.getString(1);
           }
       } catch (Exception ex) {
           ex.printStackTrace();
       }
     return tempData;
   }
}
  1. 修改server-config.wsdd文件,在其中添加SssjConn的引用
<service name="SssjConn" provider="java:RPC" style="document" use="literal">
<parameter name="className" value="example.SssjConn"/>
<parameter name="allowedMethods" value="*"/>
<parameter name="scope" value="Application"/>
<namespace>http://example</namespace>
</service>

如图所示:
在这里插入图片描述
6. 启动tomcat服务
选择Run > Edit Configurations…菜单,打开Run/Debug Configurations窗口。
从这里开始一直到最后的服务端运行都可以参照
http://www.biliyu.com/article/986.html和https://www.cnblogs.com/sekai/articles/5952735.html

二、 建立客户端程序

客户端程序的代码需要根据服务端的wsdl来生成,方式有两种;但首先都要new project,一是通过在cmd输入wsimport -s E:\javaproject\connService3\src -keep http://localhost:8080/Service/ServiceHello?wsdl
生成。第一个地址是新建project的src目录,第二个地址是引用的wsdl地址
二是通过idea建立客户端程序
1.idea选择new->project->WebServices Client, version选择Glassfish /Jax-WS 2.1 RI/Metro1.X/JWSDP2.2,download jar, 点击后需要填写wsdl的地址:
在这里插入图片描述
2. 项目结构如下:
在这里插入图片描述
3.在HelloWorldClient.java中写入:

    package example;
    import sssj.SssjConn;
    import sssj.SssjConnService;
    public class HelloWorldClient {
       public static void main(String[] argv) {
          SssjConnService service = new SssjConnService();
          SssjConn conn = service.getSssjConn();
          String sql ="select ip_input_value from M_LYC_LWCPY_FIQ02_D";
          String result = conn.getResult(sql);
          //invoke business method
          System.out.println("result:"+result);
       }
    }

点击运行,即可看到结果。这个结果便是调用webService服务端获取到的数据。接下来,要把webservice服务端的程序打包到tomcat下面,发布到服务器上。

三、 把服务端程序放在tomcat下
  1. 首先,点击服务端代码的project structure,点击artifacts,点击“+”号,添加 Web Application:Archive,选择 for"…exploded",
    在这里插入图片描述
    在这里插入图片描述
  2. 然后点击运行,就可以在out目录下找到war包,就可以把这个包放在tomcat的webapps目录下运行。也可直接点击build Artifacts,选择all或者单个的->build,就可在out下找到war包,如果生成完war包,改动了文件,再次生成时需要rebuild或者先clean再build。
  3. 接下来把war放在tomcat的webapps目录下运行,需要安装jdk和tomcat,64位都好说,32位的需要配置一下。jdk和tomcat都选择用解压版,64位的或者说安装版的tomcat不能用32位jdk的jvm,解压完后,直接配置。配好以后,启动tomcat,在地址栏输入:localhost:8080/war包名/services,即可看到界面
    在这里插入图片描述
  4. 然后在新的客户端程序中用这个的wsdl重新生成文件,并调用,就可实现从服务器端通过webService获取到数据。
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值