Spring集成Axis2
服务端
服务端采用Spring4 MVC技术,maven工程
添加依赖
编写服务接口
/** * @author WGR * @create 2020/3/9 -- 20:20 */ public interface HelloService { public String sayHello(String info); }
/** * @author WGR * @create 2020/3/9 -- 20:22 */ public class HelloServiceImpl implements HelloService { @Override public String sayHello(String info) { return "sayHello:"+info; } }
配置服务端
服务端的spring配置文件applicationContext.xml:
然后再配置services.xml,这个是重点。
在/WEB-INF/目录下建立目录/services/axis/META-INF,然后再在这个目录下创建文件services.xml,内容如下:
再配置web.xml:
启动测试
启动Spring MVC应用后,在浏览器中输入:http://localhost:8080/services/HelloWorld?wsdl
正确的返回WSDL文件,并且里面会有我定义的一个服务:
服务器成功完成!
客户端
import javax.xml.namespace.QName; import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.rpc.client.RPCServiceClient; /** * @author WGR * @create 2020/3/10 -- 22:27 */ public class HelloClient { private static String url = "http://localhost:8080/services/HelloWorld"; public static void main(String[] args) { testSayHi(); } private static void testSayHi() { try { RPCServiceClient client = new RPCServiceClient(); Options options = client.getOptions(); EndpointReference endpoint = new EndpointReference(url); options.setTo(endpoint); QName qname = new QName("http://impl.service", "sayHello"); Object[] methodArgs = new Object[] { "Tom" }; Class<?>[] returnType = new Class[] { String.class }; String result = (String) client.invokeBlocking(qname, methodArgs, returnType)[0]; System.out.println(result); } catch (AxisFault e) { e.printStackTrace(); } } }