1、axis读取services.xml的默认路径为:
(1)web.xml的内容为:
<?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">
<display-name>soapTest</display-name>
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>
org.apache.axis2.transport.http.AxisServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
(2)services.xml的内容为:
<?xml version="1.0" encoding="UTF-8"?>
<serviceGroup>
<service name="userService">
<parameter name="ServiceClass">
com.chen.ws.UserService
</parameter>
<messageReceivers>
<messageReceiver
mep="http://www.w3.org/2004/08/wsdl/in-only"
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
</service>
</serviceGroup>
(3)访问的url为:假设项目 部署在本地的tomcat下:中
url:http://localhost:8080/工程名/web.xml中<servlet-mapping > 中<url-pattern >的值/services.xml中<service >中<name >的值?wsdl
例:http://localhost:8080/soapTest/services/userService?wsdl
(4)服务端代码
public class UserService {
public User getUser(int userId ,String userName){
User user=new User();
user.setUserId(userId);
user.setUserName(userName);
return user;
}
public String deleteUser(User u){
System.out.println("用户"+u.getUserId()+":"+u.getUserName()+"删除成功");
return "用户删除成功";
}
客户端:
1、配置系统环境变量
AXIS_HOME:E:\study\Java\axis\axis2-1.6.1-bin\axis2-1.6.1
AXIS_LIB: %AXIS_HOME%/lib
path: %AXIS_HOME%/bin;
2、运行cmd
到F:\study\Java\axis\axis2-1.6.1-bin\axis2-1.6.1\bin目录下,执行wsdl2java.bat -uri http://localhost:8080/soapTest/services/userService?wsdl -o E:/resource 命令,其中
wsdl2java.bat -uri http://localhost:8080/soapServer/services/userService?wsdl -o E:/resource
-uri:soap对应服务wsdl的访问地址;
-o:指定代码生成的路径。
如下:
3、访问服务端代码:
public static void main(String[] args) throws RemoteException {
UserServiceStub stub = new UserServiceStub();
UserServiceStub.GetUser getUser = new UserServiceStub.GetUser();
getUser.setUserId(1);
getUser.setUserName("chenxiang");
System.out.println(stub.getUser(getUser).get_return().getUserId());
System.out.println(stub.getUser(getUser).get_return().getUserName());
System.out.println("============================");
UserServiceStub.DeleteUser delUser =new UserServiceStub.DeleteUser();
UserServiceStub.User user = new UserServiceStub.User();
user.setUserId(1);
user.setUserName("chenxiang");
delUser.setU(user);
System.out.println(stub.deleteUser(delUser).get_return());
}