服务器端部署
第一步 导入所需axis的jar包到你的web工程
第二步 编写需要发布的方法
第三步 修改web.xml加入以下内容
第四步 编写server-config.wsdd 放入web.xml所在目录
第五步 启动tomcat 或weblogic,
部署成功。
客户端调用
第一种方法
第二种方法,根据wsdl文件生成代码,这里不作介绍
第一步 导入所需axis的jar包到你的web工程
第二步 编写需要发布的方法
public
class
sayHello
{
public String sayHello(String name){
return name + "web service";
}
}
public String sayHello(String name){
return name + "web service";
}
}
<
servlet
>
< servlet-name > AxisServlet </ servlet-name >
< display-name > Apache-Axis Servlet </ display-name >
< servlet-class >
org.apache.axis.transport.http.AxisServlet
</ servlet-class >
</ servlet >
< servlet >
< servlet-name > AdminServlet </ servlet-name >
< display-name > Axis Admin Servlet </ display-name >
< servlet-class >
org.apache.axis.transport.http.AdminServlet
</ servlet-class >
< load-on-startup > 100 </ load-on-startup >
</ servlet >
< servlet >
< servlet-name > SOAPMonitorService </ servlet-name >
< display-name > SOAPMonitorService </ display-name >
< servlet-class >
org.apache.axis.monitor.SOAPMonitorService
</ servlet-class >
< init-param >
< param-name > SOAPMonitorPort </ param-name >
< param-value > 5001 </ param-value >
</ init-param >
< load-on-startup > 100 </ load-on-startup >
</ servlet >
< servlet-mapping >
< servlet-name > AxisServlet </ servlet-name >
< url-pattern > /axis/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-mapping >
< servlet-name > SOAPMonitorService </ servlet-name >
< url-pattern > /SOAPMonitor </ url-pattern >
</ servlet-mapping >
<!-- uncomment this if you want the admin servlet -->
< servlet-mapping >
< servlet-name > AdminServlet </ servlet-name >
< url-pattern > /axis/servlet/AdminServlet </ url-pattern >
</ servlet-mapping >
< servlet-name > AxisServlet </ servlet-name >
< display-name > Apache-Axis Servlet </ display-name >
< servlet-class >
org.apache.axis.transport.http.AxisServlet
</ servlet-class >
</ servlet >
< servlet >
< servlet-name > AdminServlet </ servlet-name >
< display-name > Axis Admin Servlet </ display-name >
< servlet-class >
org.apache.axis.transport.http.AdminServlet
</ servlet-class >
< load-on-startup > 100 </ load-on-startup >
</ servlet >
< servlet >
< servlet-name > SOAPMonitorService </ servlet-name >
< display-name > SOAPMonitorService </ display-name >
< servlet-class >
org.apache.axis.monitor.SOAPMonitorService
</ servlet-class >
< init-param >
< param-name > SOAPMonitorPort </ param-name >
< param-value > 5001 </ param-value >
</ init-param >
< load-on-startup > 100 </ load-on-startup >
</ servlet >
< servlet-mapping >
< servlet-name > AxisServlet </ servlet-name >
< url-pattern > /axis/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-mapping >
< servlet-name > SOAPMonitorService </ servlet-name >
< url-pattern > /SOAPMonitor </ url-pattern >
</ servlet-mapping >
<!-- uncomment this if you want the admin servlet -->
< servlet-mapping >
< servlet-name > AdminServlet </ servlet-name >
< url-pattern > /axis/servlet/AdminServlet </ url-pattern >
</ servlet-mapping >
<?
xml version="1.0" encoding="UTF-8"
?>
< deployment xmlns ="http://xml.apache.org/axis/wsdd/" xmlns:java ="http://xml.apache.org/axis/wsdd/providers/java" >
< globalConfiguration >
< parameter name ="sendMultiRefs" value ="true" />
< parameter name ="disablePrettyXML" value ="true" />
< parameter name ="adminPassword" value ="admin" />
< parameter name ="attachments.Directory" value ="C: omcatwebappswssWEB-INFattachments" />
< parameter name ="dotNetSoapEncFix" value ="true" />
< parameter name ="enableNamespacePrefixOptimization" value ="false" />
< parameter name ="sendXMLDeclaration" value ="true" />
< parameter name ="sendXsiTypes" value ="true" />
< parameter name ="attachments.implementation" value ="org.apache.axis.attachments.AttachmentsImpl" />
< requestFlow >
< handler type ="java:org.apache.axis.handlers.JWSHandler" >
< parameter name ="scope" value ="session" />
</ handler >
< handler type ="java:org.apache.axis.handlers.JWSHandler" >
< parameter name ="scope" value ="request" />
< parameter name ="extension" value =".jwr" />
</ handler >
</ requestFlow >
</ globalConfiguration >
< handler name ="URLMapper" type ="java:org.apache.axis.handlers.http.URLMapper" />
< handler name ="LocalResponder" type ="java:org.apache.axis.transport.local.LocalResponder" />
< handler name ="Authenticate" type ="java:org.apache.axis.handlers.SimpleAuthenticationHandler" />
<!-- user service start -->
<!-- 增加一个服务只需新增以下代码 -->
< service name ="HelloWebService" provider ="java:RPC" >
<!-- 发布的方法 -->
< parameter name ="allowedMethods" value ="*" />
< parameter name ="className" value ="cn.com.hnisi.sayHello" />
</ service >
<!-- end -->
< service name ="AdminService" provider ="java:MSG" >
< parameter name ="allowedMethods" value ="AdminService" />
< parameter name ="enableRemoteAdmin" value ="false" />
< parameter name ="className" value ="org.apache.axis.utils.Admin" />
< namespace > http://xml.apache.org/axis/wsdd/ </ namespace >
</ service >
< service name ="Version" provider ="java:RPC" >
< parameter name ="allowedMethods" value ="getVersion" />
< parameter name ="className" value ="org.apache.axis.Version" />
</ service >
< transport name ="http" >
< requestFlow >
< handler type ="URLMapper" />
< handler type ="java:org.apache.axis.handlers.http.HTTPAuthHandler" />
</ requestFlow >
< parameter name ="qs:list" value ="org.apache.axis.transport.http.QSListHandler" />
< parameter name ="qs:wsdl" value ="org.apache.axis.transport.http.QSWSDLHandler" />
< parameter name ="qs.list" value ="org.apache.axis.transport.http.QSListHandler" />
< parameter name ="qs.method" value ="org.apache.axis.transport.http.QSMethodHandler" />
< parameter name ="qs:method" value ="org.apache.axis.transport.http.QSMethodHandler" />
< parameter name ="qs.wsdl" value ="org.apache.axis.transport.http.QSWSDLHandler" />
</ transport >
< transport name ="local" >
< responseFlow >
< handler type ="LocalResponder" />
</ responseFlow >
</ transport >
</ deployment >
< deployment xmlns ="http://xml.apache.org/axis/wsdd/" xmlns:java ="http://xml.apache.org/axis/wsdd/providers/java" >
< globalConfiguration >
< parameter name ="sendMultiRefs" value ="true" />
< parameter name ="disablePrettyXML" value ="true" />
< parameter name ="adminPassword" value ="admin" />
< parameter name ="attachments.Directory" value ="C: omcatwebappswssWEB-INFattachments" />
< parameter name ="dotNetSoapEncFix" value ="true" />
< parameter name ="enableNamespacePrefixOptimization" value ="false" />
< parameter name ="sendXMLDeclaration" value ="true" />
< parameter name ="sendXsiTypes" value ="true" />
< parameter name ="attachments.implementation" value ="org.apache.axis.attachments.AttachmentsImpl" />
< requestFlow >
< handler type ="java:org.apache.axis.handlers.JWSHandler" >
< parameter name ="scope" value ="session" />
</ handler >
< handler type ="java:org.apache.axis.handlers.JWSHandler" >
< parameter name ="scope" value ="request" />
< parameter name ="extension" value =".jwr" />
</ handler >
</ requestFlow >
</ globalConfiguration >
< handler name ="URLMapper" type ="java:org.apache.axis.handlers.http.URLMapper" />
< handler name ="LocalResponder" type ="java:org.apache.axis.transport.local.LocalResponder" />
< handler name ="Authenticate" type ="java:org.apache.axis.handlers.SimpleAuthenticationHandler" />
<!-- user service start -->
<!-- 增加一个服务只需新增以下代码 -->
< service name ="HelloWebService" provider ="java:RPC" >
<!-- 发布的方法 -->
< parameter name ="allowedMethods" value ="*" />
< parameter name ="className" value ="cn.com.hnisi.sayHello" />
</ service >
<!-- end -->
< service name ="AdminService" provider ="java:MSG" >
< parameter name ="allowedMethods" value ="AdminService" />
< parameter name ="enableRemoteAdmin" value ="false" />
< parameter name ="className" value ="org.apache.axis.utils.Admin" />
< namespace > http://xml.apache.org/axis/wsdd/ </ namespace >
</ service >
< service name ="Version" provider ="java:RPC" >
< parameter name ="allowedMethods" value ="getVersion" />
< parameter name ="className" value ="org.apache.axis.Version" />
</ service >
< transport name ="http" >
< requestFlow >
< handler type ="URLMapper" />
< handler type ="java:org.apache.axis.handlers.http.HTTPAuthHandler" />
</ requestFlow >
< parameter name ="qs:list" value ="org.apache.axis.transport.http.QSListHandler" />
< parameter name ="qs:wsdl" value ="org.apache.axis.transport.http.QSWSDLHandler" />
< parameter name ="qs.list" value ="org.apache.axis.transport.http.QSListHandler" />
< parameter name ="qs.method" value ="org.apache.axis.transport.http.QSMethodHandler" />
< parameter name ="qs:method" value ="org.apache.axis.transport.http.QSMethodHandler" />
< parameter name ="qs.wsdl" value ="org.apache.axis.transport.http.QSWSDLHandler" />
</ transport >
< transport name ="local" >
< responseFlow >
< handler type ="LocalResponder" />
</ responseFlow >
</ transport >
</ deployment >
部署成功。
客户端调用
第一种方法
public
static
void
main(String[] args)
{
// TODO Auto-generated method stub
try {
// 服务端的url,需要根据情况更改。
String endpointURL = "http://192.168.16.28:7001/basic/services/urn:MessageService?wsdl";//
// Web服务端点地址
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpointURL));
call
.setOperationName(new QName(endpointURL,
"sayHello"));// 设置操作的名称。
call.addParameter("name", XMLType.XSD_STRING, ParameterMode.IN);// 参数的类型
call.setReturnType(XMLType.XSD_STRING);// 返回的数据类型
//System.out.println(call.getPortName().toString());
String ret = (String) call.invoke(new Object[] { new String("my") });// 执行调用
System.out.println("返回状态:" + ret);
} catch (Exception e) {
e.printStackTrace();
}
}
// TODO Auto-generated method stub
try {
// 服务端的url,需要根据情况更改。
String endpointURL = "http://192.168.16.28:7001/basic/services/urn:MessageService?wsdl";//
// Web服务端点地址
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpointURL));
call
.setOperationName(new QName(endpointURL,
"sayHello"));// 设置操作的名称。
call.addParameter("name", XMLType.XSD_STRING, ParameterMode.IN);// 参数的类型
call.setReturnType(XMLType.XSD_STRING);// 返回的数据类型
//System.out.println(call.getPortName().toString());
String ret = (String) call.invoke(new Object[] { new String("my") });// 执行调用
System.out.println("返回状态:" + ret);
} catch (Exception e) {
e.printStackTrace();
}
}