java IDEA创建WebService项目,调用时添加到数据库:步骤实例

目录

应用场景:

一:利用idea创建webservice项目

二:添加到数据库:


应用场景:

需要我方提供webservice接口,使用方调用时传递数据,保存到我方的数据库中,

一:利用idea创建webservice项目

1)File>>new>>project

2)填写项目名,

3)项目初始结构(有一个自动生成的Java类–HelloWorld)

4)生成WSDL文件(右键文件>>Webservice>>Generate..)

会生成wsdl文件

5)配置tomcat

6)到这个时候,然后可以运行起服务了,但是访问服务页面时还是会报错。因为还要给部署的 Artifact 添加 Apache Axis 包的依赖。
    选择File> Project Structure>>Artifacts。

会到在新的警告信息。点击警告信息右侧的Fix…按钮。

在这里插入图片描述

在弹出菜单里选择Add ‘JAX-WS-Apache Axis’ to the artifact。

在这里插入图片描述

修复完成后警告消失。

在这里插入图片描述

7)查看:在浏览器里输入:

http://localhost:8080/servicedome_war_exploded/services

点击HelloWorld(wsdl)能正常查看wsdl的内容则发布成功。服务器端完成。

8)编写客户端代码调用服务

package example;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.utils.StringUtils;


public class CalculateClient {

    public static void main(String[] args) {
        // 指定调用WebService的URL(这里是我们发布后点击HelloWorld)
        String url = "http://localhost:8080/servicedome_war_exploded/services/HelloWorld?wsdl";
        CalculateClient calculateClient = new CalculateClient();

        String svrMinusResult = calculateClient.CallMethod(url, "sayHelloWorldFrom", new Object[]{"牛"});
        System.out.println(svrMinusResult);
    }

    //实现WebService上发布的服务调用
    public String CallMethod(String url, String method, Object[] args) {
        String result = null;
        if(StringUtils.isEmpty(url)) {
            return "url地址为空";
        }
        if(StringUtils.isEmpty(method)) {
            return "method地址为空";
        }
        Call rpcCall = null;
        try {
            //实例websevice调用实例
            Service webService = new Service();
            rpcCall = (Call) webService.createCall();
            rpcCall.setTargetEndpointAddress(new java.net.URL(url));
            rpcCall.setOperationName(method);
            //执行webservice方法
            String rslt = (String) rpcCall.invoke(args);
            result = String.valueOf(rslt);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }
}

运行:

    可能会遇到的问题:
    1.在启动Tomcat后,运行客户端代码遇到错误:“org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.”
    解决办法:找到web->WEB-INF下的server-config.wsdd文件定位到下面的内容做修改:
    去掉红框部分

在这里插入图片描述

至此,webservice项目已经搭建完成,

二:添加到数据库:

1)添加jar包

   1: idea添加jar包,选择File> Project Structure

选择Modules>>点击+号>>选择JARs..

点击jar包所在的位置,点击ok

点击ok

      2:添加到(此步一定要添加)!!!

        尝试着将mysql-connector-java-5.1.44-bin.jar的jar包加入C:\Program Files\Java\jre1.6.0_02\lib\ext文件夹下,原来是不仅仅         要求将驱动加入classpath中,而且需要将该jar包加入到java运行环境的外部jar包中。 

2)编写代码:

package example;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class BaseDao {

    public static String sql_insert(String name)throws Exception {
        System.out.println("w:"+name);
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://127.0.0.1:3306/Govern?useUnicode=true&characterEncoding=utf-8";
            String user = "root";
            String password = "123456";
            // 建立数据库连接,获得连接对象conn
            Connection conn = DriverManager.getConnection(url, user, password);
            String sql = "insert into cs (cs) values (?);"; // 生成一条sql语句
            // 创建一个Statment对象
            PreparedStatement ps = conn.prepareStatement(sql);
            // 为sql语句中第一个问号赋值
            ps.setString(1, name);
            // 执行sql语句
            ps.executeUpdate();
            // 关闭数据库连接对象
            conn.close();
            System.out.println("完毕!!!");
            return "1";
    }

}


数据库表字段:

id为自增的;

3)调用

在HelloWorld中修改(访问接口是调用添加到数据库的方法)

package example;

import Dao.BaseDao;

public class HelloWorld {
    public String sayHelloWorldFrom(String from) throws Exception {
        return BaseDao.sql_insert(from);
    }
}

右键重新生成wsdl

重新调用一下客户端代码,调用服务

控制台(方法调用成功return的1)

数据库:

至此添加数据库也全部结束!

ps:

参数是可以再添加的

总结的有些急促,有不懂的可以评论哦(评论必回)

参考文章:

https://blog.csdn.net/qq_43147940/article/details/84712605:Intellij IDEA开发WebService

https://blog.csdn.net/jiajikang_jjk/article/details/79742718:java利用jdbc连接数据库之插入数据

直接调用添加到数据库可以添加,但是通过接口添加错误,解决办法:

https://blog.csdn.net/qq_20936333/article/details/81254928

     

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值