Eclipse用SOAP实现Web Service
来源:互联网 发布:免费铺砖软件 编辑:程序博客网 时间:2024/06/06 06:54
Eclipse用SOAP实现Web Service
本文基于Eclipse JEE用SOAP实现Web Service,所用服务器为Tomcat 9。
- 1. 构建Web Service的服务器端
- 2. 构建客户端测试Web Service
本文以四则运算器Calculator的Service为例。
1. 构建Web Service的服务器端
- 1)创建一个名为“CalculatorSOAP”的Dynamic Web Project
点击Next, 出现如下窗口,然后输入项目名称“CalculatorSOAP”并指定项目路径:
这里不要直接点击Finish,而要点击Next,因为要再最后一步勾选“生成web.xml文件”的选项,这个文件后面会用到。
点击Next,然后勾选“Generate web.xml delpoyment descriptor”:
点击Finish, 服务器端的项目创建完成。
- 2)编写Web Service所要提供的功能的代码
在src中创建一个名为“mypackage ”的包,并在包中创建一个名为“Calculator”的类,Calculator.java中的代码如下:
//Calculator.java
package mypackage;public class Calculator { public double add(double x, double y){ return x + y; } public double sub(double x, double y){ return x - y; } public double mul(double x, double y){ return x * y; } public double div(double x, double y){ return x / y; }}
写完后记得“ctrl+s”保存一下,否则后面会出错。
- 3)将该项目搭建成Web Service
在项目名上右键->New->Web Service(列表中没有的话选择Other…然后去搜索):
点击Next,出现如下窗口,我们主要配置如下两个标红的地方:
对于“Service implementation”部分,点击Browse按钮,选择上面所写的“Calculator”那个类:
对于“Configuration”部分,“Server runtime”选择Tomcat v9.0 Server, “Web service runtime” 选择Apache Axis:
这些都配置完后,点击Next:
确保“Methods”中的方法都已经勾选,然后点击Next:
点击Start server,这是为了启动Tomcat 9服务器,服务器成功启动后点击Next:
出现这个结果就代表Web Service已经配置好,点击Finish即可。
此时的目录结构如下:
对比之前的文件目录中会发现,在“WebContent/WEB-INF”中多了很多与Web Service相关的文件,lib目录之前是空的,现在也自动添加了很多jar包,而且“web.xml”中也自动填充了很多内容,此时的“web.xml”文件内容如下:
//web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>CalculatorSOAP</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <display-name>Apache-Axis Servlet</display-name> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/servlet/AxisServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>*.jws</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <servlet> <display-name>Axis Admin Servlet</display-name> <servlet-name>AdminServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class> <load-on-startup>100</load-on-startup> </servlet> <servlet-mapping> <servlet-name>AdminServlet</servlet-name> <url-pattern>/servlet/AdminServlet</url-pattern> </servlet-mapping></web-app>
- 4)在浏览器中测试
点击“Run->web service explorer”或者直接打开浏览器输入:http://127.0.0.1:51384/wse/wsexplorer/wsexplorer.jsp?org.eclipse.wst.ws.explorer=0:
点击右上角倒数第二个按钮(图中标红的按钮):
点击左边的“WSDL Main”,就会出现输入WSDL URL的编辑框。WSDL URL可以在刚才生成的“WebContent/WEB-INF/wsdl”目录中的Calculator.wsdl文件的结尾处找到:
在这里输入时,还需要在URL的结尾处加上“?wsdl”,所以完整的WSDL URL为:http://localhost:8080/CalculatorSOAP/services/Calculator?wsdl
其实,WSDL URL的通用写法为:
http://localhost:8080/项目名/services/类名?wsdl
点击Go即可进入:
在Operations处就会出现我们刚才在Calculator这个类中所写的四个方法,随便点击个方法进行测试,比如点击“add”:
计算35.4+27.9就可得到结果63.3。
2. 构建客户端测试Web Service
客户端测试过程中服务器端的Tomcat要保持全程开启状态!!!!!!
- 1)创建一个名为“TestCalculatorSOAP”的Java Project
点击Next, 出现如下窗口,然后输入项目名称“TestCalculatorSOAP”并指定项目路径:
点击Next:
点击Finish, 服务器端的项目创建完成。
- 2)将该项目搭建成Web Service Client
在项目名上右键->New->Web Service Client(列表中没有的话选择Other…然后去搜索):
点击Next,出现如下窗口,我们主要配置如下两个标红的地方:
对于“Service implementation”部分,点击Browse按钮,选择刚才在CalculatorSOAP项目中生成的Calculator.wsdl文件:
对于“Configuration”部分,配置与服务器端完全相同,默认即可。
这些都配置完后,点击Next:
出现这个结果就代表Web Service Client已经配置好,点击Finish即可。
此时的目录结构如下:
对比之前的文件目录中会发现,在src目录中自动生成了mypackage的包和很多java文件,我们只需写一个main函数来调用这些java文件即可完成测试。
- 3)写main函数进行测试
在src的mypakcage包中创建一个名为“Main”的类,该类中的内容如下:
//Main.java
package mypackage;import java.rmi.RemoteException;import java.util.Scanner;public class Main { public static void main(String args[]) { System.out.println("SOAP方式的Calculator Web Service:"); CalculatorProxy proxy = new CalculatorProxy(); Scanner input = new Scanner(System.in); System.out.println("请输入运算符(+,-,*,/): "); String operator = input.nextLine(); System.out.println("x = "); double x = input.nextDouble(); System.out.println("y = "); double y = input.nextDouble(); double result = 0; try { if(operator.equals("+")) result = proxy.add(x, y); if(operator.equals("-")) result = proxy.sub(x, y); if(operator.equals("*")) result = proxy.mul(x, y); if(operator.equals("/")) result = proxy.div(x, y); } catch (RemoteException e) { e.printStackTrace(); } System.out.println("Output from SOAP Server ......"); System.out.println("运算结果 = "+ result); }}
写完后记得“ctrl+s”保存一下,否则后面会出错。
在Main.java上右键->Run as->Java Application,运行以后,可能会出现如下警告:
解决办法:导入javax.activation和javax.mail的jar包。
javax.activation的jar包下载地址:http://www.java2s.com/Code/Jar/j/Downloadjavaxactivationjar.htm
javax.mail的jar包下载地址:http://www.java2s.com/Code/Jar/j/Downloadjavamail144jar.htm
在“TestCalculatorSOAP”的项目根目录下创建一个文件夹叫“lib”,然后将下载的两个jar包放到这个文件夹下:
回到Eclipse中,在项目名上右键->Refresh,然后再次右键->Build Path->Configure Build Path->Libraries->Add JARs,将刚才那两个jar包添加进去:
然后点击Apply->OK,再次运行就不会有这个错误了。用户分别输入运算符,x和y的值,就可得出计算结果:
- Eclipse用SOAP实现Web Service
- 用SOAP实现数据通讯、Web Service
- SOAP web service用AFNetWorking实现请求
- iOS开发-进阶:SOAP web service用AFNetWorking实现请求
- 利用php soap实现web service
- PHP - 使用SOAP实现WEB SERVICE
- 利用PHP SOAP实现WEB SERVICE
- 利用PHP SOAP实现WEB SERVICE
- 利用PHP SOAP实现WEB SERVICE
- 利用php soap实现web service
- 利用PHP SOAP实现WEB SERVICE
- 利用php soap实现web service
- 利用php soap实现web service
- Eclipse用REST实现Web Service
- Web Service Soap认证
- SOAP&Web Service
- WSDL & SOAP & Web Service
- SOAP and Web Service
- 108: 求a*b
- 计算机、程序和Java概述
- $watch函数的使用
- 我的网址
- 【Linux学习笔记】24:Bash变量概述
- Eclipse用SOAP实现Web Service
- 使用libvirt和qemu将pci pass through设备添加到虚拟机上
- 多因子模型之因子(信号)测试平台----alphalens(三)
- 深入理解C++template的基础知识
- http keep-alive 和 tcp keepalive
- MyBatis(二)mapper 代理
- 3、数据结构Set —ES6学习笔记
- JavaScript的constructor 、prototype解析 -- 原型模式知识扩展
- SecureCRT连接linux,vim颜色显示问题