当前位置:   article > 正文

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

idea 项目里new 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)编写客户端代码调用服务

  1. package example;
  2. import org.apache.axis.client.Call;
  3. import org.apache.axis.client.Service;
  4. import org.apache.axis.utils.StringUtils;
  5. public class CalculateClient {
  6. public static void main(String[] args) {
  7. // 指定调用WebService的URL(这里是我们发布后点击HelloWorld)
  8. String url = "http://localhost:8080/servicedome_war_exploded/services/HelloWorld?wsdl";
  9. CalculateClient calculateClient = new CalculateClient();
  10. String svrMinusResult = calculateClient.CallMethod(url, "sayHelloWorldFrom", new Object[]{"牛"});
  11. System.out.println(svrMinusResult);
  12. }
  13. //实现WebService上发布的服务调用
  14. public String CallMethod(String url, String method, Object[] args) {
  15. String result = null;
  16. if(StringUtils.isEmpty(url)) {
  17. return "url地址为空";
  18. }
  19. if(StringUtils.isEmpty(method)) {
  20. return "method地址为空";
  21. }
  22. Call rpcCall = null;
  23. try {
  24. //实例websevice调用实例
  25. Service webService = new Service();
  26. rpcCall = (Call) webService.createCall();
  27. rpcCall.setTargetEndpointAddress(new java.net.URL(url));
  28. rpcCall.setOperationName(method);
  29. //执行webservice方法
  30. String rslt = (String) rpcCall.invoke(args);
  31. result = String.valueOf(rslt);
  32. } catch (Exception e) {
  33. e.printStackTrace();
  34. }
  35. return result;
  36. }
  37. }

运行:

    可能会遇到的问题:
    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)编写代码:

  1. package example;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.PreparedStatement;
  5. public class BaseDao {
  6. public static String sql_insert(String name)throws Exception {
  7. System.out.println("w:"+name);
  8. Class.forName("com.mysql.jdbc.Driver");
  9. String url = "jdbc:mysql://127.0.0.1:3306/Govern?useUnicode=true&characterEncoding=utf-8";
  10. String user = "root";
  11. String password = "123456";
  12. // 建立数据库连接,获得连接对象conn
  13. Connection conn = DriverManager.getConnection(url, user, password);
  14. String sql = "insert into cs (cs) values (?);"; // 生成一条sql语句
  15. // 创建一个Statment对象
  16. PreparedStatement ps = conn.prepareStatement(sql);
  17. // 为sql语句中第一个问号赋值
  18. ps.setString(1, name);
  19. // 执行sql语句
  20. ps.executeUpdate();
  21. // 关闭数据库连接对象
  22. conn.close();
  23. System.out.println("完毕!!!");
  24. return "1";
  25. }
  26. }


数据库表字段:

id为自增的;

3)调用

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

  1. package example;
  2. import Dao.BaseDao;
  3. public class HelloWorld {
  4. public String sayHelloWorldFrom(String from) throws Exception {
  5. return BaseDao.sql_insert(from);
  6. }
  7. }

右键重新生成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

     

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/392988
推荐阅读
相关标签
  

闽ICP备14008679号