Web Service是建立可互操作的分布式应用程序的新平台。它定义了应用程序中如何在Web上实现互操作性。我们可以使有任何一种喜欢的语言,在任何喜欢的平台上编写Web Service。只要我们可以通过Web service标准对这些服务进行查询和访问。
XML(可扩展的标记语言)是Web Service平台中表示数据的基本格式。XML主要的优点在于它是平台无关的。Web Service定义了一个简单对象访问协议--soap,soap绑定在http协议之上。
Web Service简单地说就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。就是说,我们能够用编程的方法通过Web来调用不同服务器上可能采用不同开发语言进行开发的应用程序。
见下图:
布署:
1.首先得到以下四个压缩文件,并解压到一个目录中
2.找到目录axis-1_4\webapps下的axis项目,将其发布到tomcatwebapps目录下
3.得到四个jar包:
a.axis-src-1_4\axis-1_4\lib\activation.jar
b.xml-security-1_3_0\libs\xmlsec-1.3.0.jar
c.JAVAMAIL_JXL_MYSQL_UPLOAD_lib\mail.jar
d.Java\jdk1.6.0_10\lib\tools.jar
将它们放入tomcat下的刚发布的axis项目的lib包中。
4.将axis项目WEB-INF\classes下的文件:
放置到apache-tomcat-6.0.16\webapps\axis文件下。
5.现在服务器布署完毕。写一个简单类测试
package com.lovo.service;
public class MyWebService {
public String say(String name){
return name+"说:你好!";
}
}
将编译好的 class文件,连包一起拷贝到apache-tomcat-6.0.16\webapps\axis\WEB-INF\classes目录下。
6.将SoapMonitor-deploy.wsdd文件:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<handler name="soapmonitor"
type="java:org.apache.axis.handlers.SOAPMonitorHandler">
<parameter name="wsdlURL"
value="/axis/SOAPMonitorService-impl.wsdl"/>
<parameter name="namespace"
type="java:org.apache.axis.handlers.SOAPMonitorHandler"/>
<parameter name="serviceName" value="SOAPMonitorService"/>
<parameter name="portName" value="Demo"/>
</handler>
<service name="SOAPMonitorService" provider="java:RPC">
<parameter name="allowedMethods" value="publishMessage"/>
<parameter name="className"
value="org.apache.axis.monitor.SOAPMonitorService"/>
<parameter name="scope" value="Application"/>
</service>
</deployment>
还有deploy-myws.wsdd文件
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java= "http://xml.apache.org/axis/wsdd/providers/java">
<service name="MyWS68" provider="java:RPC">
<requestFlow>
<handler type="soapmonitor"/>
</requestFlow>
<responseFlow>
<handler type="soapmonitor"/>
</responseFlow>
<parameter name="className" value="com.lovo.service.MyWebService"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>
通过批处理文件deploywsdd.bat
set AXIS_HOME=D:\lovo\axis\axis-1_4
set AXIS_LIB=%AXIS_HOME%\lib
set AXISCLASSPATH=%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.jar;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\log4j-1.2.8.jar
java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy-myws.wsdd
pause
告知axis项目。
启动tomcat,访问axis项目:
7.通过其他进程进行访问。
package com.lovo.test;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class test {
public static void main(String[] args) {
try{
String endpoit = "http://localhost:8080/axis/services/MyWS68";
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoit));
call.setOperationName(new QName(null,"say"));//say表示将要调用的方法
Object[]o = new Object[1];
o[0]="蝴蝶姐姐";
String ret = (String)call.invoke(o);
System.out.println(ret);
}catch(Exception ex){
ex.printStackTrace();
}
}
}
将axis项目中的jar包,拷贝到当前项目中。
启动 tomcat服务器,运行当前代码测试!