1.首先在Web项目中建一个java类,写一个方法。
public class HelloServer {
/**
* 开发WebService:服务器端
* @param name
* @return
*/
public String sayHello(String name){
return "hello:"+name;
}
}
2.在WEB-INF 目录下添加一个WebService配置文件:server-config.wsdd。代码如下:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<handler name="URLMapper"
type="java:org.apache.axis.handlers.http.URLMapper" />
<!-- 系统服务 -->
<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>
<!-- 需要配置的地方 -->
<!-- 规定外部访问时的服务名称 name ="webservice" -->
<service name="webservice" provider="java:RPC">
<!-- 制定webservice的实现类 value="webservice.WebService" -->
<parameter name="className" value="webservice.WebService" />
<parameter name="allowedMethods" value="*" />
</service>
<transport name="http">
<requestFlow>
<handler type="URLMapper" />
</requestFlow>
</transport>
</deployment>
3.在web.xml 增加WebService的配置
<!-- WebService -->
<servlet>
<servlet-name>axis</servlet-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
<load-on-startup>10</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>axis</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
4.建立测试类WebServiceTest
public class WebServiceTest {
/**
* @param args
*/
public static void main(String[] args) {
try
{
//
String wsdlUrl= "http://localhost:8080/项目名称/services/webservice?wsdl";
String nameSpaceUri= "http://localhost:8080/项目名称/services/webservice";
// 创建调用对象
Service service = new Service();
Call call = null;
call = (Call) service.createCall();
// 调用 getMessage
System.out.println(">>>getMessage");
//需要调用的方法 sayHello
call.setOperationName(new QName(nameSpaceUri, "sayHello"));
call.setTargetEndpointAddress(new java.net.URL(wsdlUrl));
//需要的参数如果有多个参数以数组的方式{"参数1","参数2","参数3"}
String ret = (String) call.invoke(new Object[]{"webservice"});
System.out.println("return value is " + ret);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
这样就可以实现WebService了。
需要的jar包:
可以从axis下载的压缩包里得到