环境:java 1.6  ,Tomcat 6.0 ,MySql5.1,axis1.4,MyEclipse8.0,struts2

只是一个简单的银行用户存取款的例子

在数据库中建立一个表   字段为deposit  cardNumber  分别赋初值给这两个字段 0,100001

先来部署下axis1.4 ,将下载的axis1.4解压,解压后将webapps文件夹下的axis文件夹拷贝到Tomcat的webapps中

启动tomcat,http://localhost:8080/axis会看到:

这时axis部署成功了

在MyEclipse中建立一个web project  名字叫mybank,在工程里建几个包com.xxx.util 放公共类 JdbcUtil.java 连接数据库

com.xxx.dao放接口 DepositAndGet  com.xxx.dao.impl 放接口的实现DepositAndGetImpl

package com.xxx.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public final class JdbcUtil { private static String url = "jdbc:mysql://localhost:3306/test"; private static String user = "root"; private static String password = "123456"; private static Connection con = null; private JdbcUtil() { } static { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { System.out.println("连接错误" + e.toString()); } } public static Connection getConnection() { try { con = DriverManager.getConnection(url, user, password); } catch (SQLException e) { System.out.println("connect failed!:" + e.toString()); e.printStackTrace(); } return con; } public static void free(ResultSet rs, Statement st, Connection con) { try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (st != null) { st.close(); } } catch (SQLException e) { e.printStackTrace(); } finally { try { if (con != null) { con.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } }

package com.xxx.dao; import com.xxx.model.User; public interface DepositAndGet { public boolean deposit(int x,int cardNumber);//存钱 public boolean balance(User u);//未用到 public boolean getMoney(int y,int cardNumber);//取钱 }

package com.xxx.dao.impl; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import com.xxx.dao.DepositAndGet; import com.xxx.model.User; import com.xxx.util.JdbcUtil; public class DepositAndGetImpl implements DepositAndGet{ public int getDeposit(int id){//该方法用来获得账户中现有的余额 Connection conn=null; PreparedStatement ps=null; ResultSet rs=null; int myDeposit=0; conn=JdbcUtil.getConnection(); String sql="select deposit from bank where cardNumber="+id; try { ps=conn.prepareStatement(sql); rs=ps.executeQuery(); while(rs.next()){ // User u=new User(); // u.setBalance(rs.getInt("deposit")); myDeposit=rs.getInt("deposit"); } } catch (SQLException e) { e.printStackTrace(); }finally{ JdbcUtil.free(rs, ps, conn); } return myDeposit; } public boolean balance(User u) { return false; } public boolean deposit(int x,int cardNumber) {//存款 //System.out.println("金额"+x);System.out.println("卡号"+cardNumber); Connection conn=null; PreparedStatement ps=null; ResultSet rs=null; int addDeposit=getDeposit(cardNumber); conn=JdbcUtil.getConnection(); String sql="update bank set deposit=? where cardNumber=?"; try { ps=conn.prepareStatement(sql); ps.setInt(1, x+addDeposit); ps.setInt(2, cardNumber); int i=ps.executeUpdate(); if(i>0){ System.out.println("成功存入 "+ x + " 元 "); System.out.println("卡上余额为:"+(x+addDeposit)); return true; } } catch (SQLException e) { e.printStackTrace(); }finally{ JdbcUtil.free(rs, ps, conn); } return false; } public boolean getMoney(int y, int cardNumber) {//取款 Connection conn=null; PreparedStatement ps=null; ResultSet rs=null; int getDeposit=getDeposit(cardNumber); conn=JdbcUtil.getConnection(); String sql="update bank set deposit=? where cardNumber=?"; try { ps=conn.prepareStatement(sql); ps.setInt(1, getDeposit-y); ps.setInt(2, cardNumber); int i=ps.executeUpdate(); if(i>0){ System.out.println("成功取款 "+ y + " 元 "); System.out.println("卡上余额为:"+(getDeposit-y)); return true; } } catch (SQLException e) { e.printStackTrace(); }finally{ JdbcUtil.free(rs, ps, conn); } return false; } }

写一个wsdd文件,将它放在tomcat-webapps-axis文件夹下

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="Deposit" provider="java:RPC"> <parameter name="className" value="com.xxx.dao.impl.DepositAndGetImpl"/> <parameter name="allowedMethods" value="*"/> </service> </deployment>

将mybank中的class文件连连包一起拷贝到tomcat-webapps-axis-webinf-classes中 启动tomcat

开始--运行-cmd 进入到deploy.wsdd所在的文件夹

运行java org.apache.axis.client.AdminClient deploy.wsdd命令

Processing file deploy.wsdd

<Admin>Done processing</Admin>

会在web-inf文件夹中生成一个server-config.wsdd,复制这个文件到mybank工程中

http://localhost:8080/mybank/services会看到

现在服务发布成功了 现在来调用这些服务

建立一个web project 来调用服务

将struts2 的jar包和axis中的jar包导入到工程中

web.xml

在工程中建立一个包 com.xxx.action

AddAction.java

package com.xxx.action; import javax.xml.namespace.QName; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings({ "serial", "unused" }) public class AddAction extends ActionSupport{ private int id; private int balance;//余额 private int addMoney;//存入钱数 public int getId() { return id; } public void setId(int id) { this.id = id; } public int getBalance() { return balance; } public void setBalance(int balance) { this.balance = balance; } public int getAddMoney() { return addMoney; } public void setAddMoney(int addMoney) { this.addMoney = addMoney; } public String execute()throws Exception{ String endpoint = "http://localhost:8080/mybank/services/Deposit?wsdl"; Service service=new Service(); Call call=(Call)service.createCall(); call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.setOperationName("deposit"); int id=getId(); int addMoney=getAddMoney(); System.out.println("卡号:"+id+" "+"存入金额 "+addMoney); // call.setOperationName(new QName("http://localhost:8080/mybank/services/Deposit?wsdl","deposit")); //String res = (String) call.invoke( new Object[] {addMoney,id} ); Object addsu =call.invoke( new Object[] {addMoney,id} ); if(addsu!=null){ return SUCCESS; }else{ return INPUT; } } }

GetAction.java

package com.xxx.action; import org.apache.axis.client.Call; import org.apache.axis.client.Service; public class GetAction { private int id; private int balance;//余额 private int getMoney;//取钱数 public int getId() { return id; } public void setId(int id) { this.id = id; } public int getBalance() { return balance; } public void setBalance(int balance) { this.balance = balance; } public int getGetMoney() { return getMoney; } public void setGetMoney(int getMoney) { this.getMoney = getMoney; } public String execute()throws Exception{ String endpoint = "http://localhost:8080/mybank/services/Deposit?wsdl"; Service service=new Service(); Call call=(Call)service.createCall(); call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.setOperationName("getMoney"); int id=getId(); int getMoney=getGetMoney() ; System.out.println("卡号:"+id+" "+"取款 "+getMoney); // call.setOperationName(new QName("http://localhost:8080/mybank/services/Deposit?wsdl","deposit")); //String res = (String) call.invoke( new Object[] {addMoney,id} ); Object addsu =call.invoke( new Object[] {getMoney,id} ); if(addsu!=null){ return "success"; }else{ return "input"; } } }

开始配置struts.xml

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="com.xxx.action" namespace="/com.xxx.action" extends="struts-default"> <action name="add" class="com.xxx.action.AddAction"> <result name="success">/success.jsp</result> <result name="input">/add.jsp</result> </action> <action name="get" class="com.xxx.action.GetAction"> <result name="success">/success.jsp</result> <result name="input">/get.jsp</result> </action> </package> </struts>

在webroot中建jsp页面  add.jsp  get.jsp   success.jsp

add.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <s:form action="add" namespace="/com.xxx.action"> <s:textfield label="卡号" name="id" value=""/> <s:textfield label="存入金额" name="addMoney" value=""/> <s:submit value="存款"/> </s:form> </body> </html>

get.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <s:form action="get" namespace="/com.xxx.action"> <s:textfield label="卡号" name="id" value=""/> <s:textfield label="取款金额" name="getMoney" value=""/> <s:submit value="取款"/> </s:form> </body> </html>

success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'index.jsp' starting page</title> </head> <body> <h1>SUCCESS!!!!!!!!!!!!!!!!</h1> </body> </html>

现在测试看看服务是否能正常运行

先来存钱

http://localhost:8080/testWebService/add.jsp

点击存款:跳到success.jsp页面

后台输出:  卡号:100001 存入金额  1000000

成功存入 1000000 元

卡上余额为:1000000

现在取款:

点击取款:跳到success.jsp页面

后台输出:  卡号:100001 取款  500000

成功取款 500000 元

卡上余额为:500000

<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>

webservice wsdl相关推荐

  1. 使用suds-py3调用webservice WSDL接口

    使用suds-py3调用webservice WSDL接口 应用场景:我们需要通过Python调用webservice的接口,这需要使用到第三方库suds,这篇文章介绍使用suds-py3调用webs ...

  2. java httppost wsdl_Java使用HttpUrlConnection调用webService(wsdl)

    首先需要下载工具https://pan.baidu.com/s/1XQ-VubxcPFoqwGm7wierHg 下载成功后解压打开exe程序,在wsdl endpoint中输入你wsdl的地址,点击g ...

  3. webservice wsdl 生成服务

    由于之前的示例是在当前项目下发布的server,也是在当前项目下访问的server发布的webservice.但在实际应用中,我们的服务端往往是和客户諯分离的,甚至它们是不同的项目中不同的人写的.而像 ...

  4. 获取webservice(wsdl)数据包

    1.打开ReadyApi,选择File->New Functional Test 2.在API Definition框内点击 Start 3.填入wsdl地址,点击Next 4.选择Single ...

  5. Linux使用Java将C++程序发布为webservice(wsdl)

    现有一个c++程序,如图,我们要将此程序发布为webservice. 文件夹中的samplebase为可执行文件. 1. 配置环境 由于程序中引用了gdal环境,mpi和tomcat,因此我们首先要在 ...

  6. WebService - WSDL报错 s:element ref=s:schema /s:any /

    [1]获取wsdl 这里获取的时免费webservice接口–城市天气. http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl <?xm ...

  7. 解析word template返回使用的webservice WSDL和Operation

    Created by Jerry Wang, last modified on Jun 04, 2014 如果在CRM UI上创建新的document template并为其assign extern ...

  8. 【转】WebService WSDL结构分析

    转载自:http://kalogen.javaeye.com/blog/418958 WSDL (Web Services Description Language,Web服务描述语言)是一种XML ...

  9. webservice wsdl 转java对象

    使用windows cmd下提供的wsimport命令来自动反射生成java soap对象 (当然前提是你得有jdk环境) wsimport -keep -p shenzhenhospital_she ...

  10. WebService --WSDL文档解析

    通俗的讲:WSDL文档描述了Web Service如下3个方面: WHAT--该 Web Service包含"什么"操作 HOW--该 Web Service的操作应该" ...

最新文章

  1. python 调用 tensorflow.dll_解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题...
  2. 使用atomic一定是线程安全的吗
  3. centos7 安装oracle jdk 与openjdk 实现切换
  4. getElementById取得文本框中的值
  5. java 命令行 编译 jar文件_用命令行编译java并生成可执行的jar包
  6. 解决linux服务器上matplotlib中文显示乱码问题
  7. 爆炸的符卡洋洋洒洒(01背包)
  8. H264解码之读取本地H264文件
  9. oracle索引失效解决,Oracle索引失效的原因
  10. Cocos2d-x 中文标题设置
  11. Ubuntu下制作deb包的方法详解
  12. (附源码)基于PHP二手服装网站 毕业设计 201711
  13. matlab 从字符串里面提取出数字
  14. linux wifi 8192移植 及部分wifi工具的使用
  15. 云计算时代的进阶者,专访景安董事长杨小龙
  16. python中dic.get用法
  17. 供应链金融生态系统全解读,在不同的行业都有哪些模式?
  18. CSS布局之“弹性盒子布局”
  19. 用Excel PS 汽车人标志
  20. 笔记-GPS设备定位方式

热门文章

  1. 索马里ECTN/BESC/CTN证书 我司办理
  2. 架空输电线路进行登杆检测、巡检的8条注意事项
  3. 2013中国互联网安全大会---关于季昕华老师的分享(不喜请勿入!)
  4. (附源码)SSM学生体质状况跟踪服务平台JAVA计算机毕业设计项目
  5. ORA01007 INS32018
  6. 用html做个性相册,纯CSS实现蜂窝六边形的个性相册
  7. 个人导航网源码 官方权威版本
  8. 万用表怎么测量电池容量_万用表怎么测量电动车电池的好坏?看完就弄明白了!...
  9. MASM写的盗Q程序
  10. 个人信息管理专家EssentialPIM Pro 9.7 便携终身版