Java客户端 访问 Axis2及出现的状况处理
Java客户端 访问 Axis2及出现的情况处理
目的
- Java客户端访问WebService
- 2个项目在同一个Tomcat的webapp的目录下,实现项目A能够通过webService访问项目B
在Java工程中访问
package com.hry.axis; 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; public class RPCClient { public static void demo(){ // 使用RPC方式调用WebService RPCServiceClient serviceClient = null; try { serviceClient = new RPCServiceClient(); } catch (AxisFault e1) { // TODO Auto-generated catch block e1.printStackTrace(); } Options options = serviceClient.getOptions(); // 指定调用WebService的URL EndpointReference targetEPR = new EndpointReference( "http://127.0.0.1:8999/VTMS3000/services/VTMS?wsdl"); options.setTo(targetEPR); // 指定getGreeting方法的参数值 Object[] opAddEntryArgs = new Object[] { "超人" }; // 指定getGreeting方法返回值的数据类型的Class对象 Class[] classes = new Class[] { String.class }; // 指定要调用的getGreeting方法及WSDL文件的命名空间 QName opAddEntry = new QName("http://service.dahuatech.com", "HelloWorld"); // 调用getGreeting方法并输出该方法的返回值 try { long i = System.currentTimeMillis(); int num = 100; while(num -- > 0 ){ System.out.println(" num = " + num + " " +serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0]); } System.out.println("cost = " + String.valueOf(System.currentTimeMillis() - i)); // 必须释放资源否则出错 serviceClient.cleanupTransport(); } catch (AxisFault e) { // TODO Auto-generated catch block e.printStackTrace(); } // // 下面是调用getPrice方法的代码,这些代码与调用getGreeting方法的代码类似 // classes = new Class[] { int.class }; // opAddEntry = new QName("http://ws.apache.org/axis2", "getPrice"); // System.out.println(serviceClient.invokeBlocking(opAddEntry, // new Object[] {}, classes)[0]); } public static void main(String[] args) throws Exception { RPCClient.demo(); } }
项目之间ws直接的访问
经过测试以上的代码也可以实现同一个Tomcat中的项目A访问项目B
参考文献
- Axis2客户端总是连接超时(Timeout waiting for connection)解决方法 或者 RPCServiceClient必须调用cleanupTransport()方法。 sender.cleanupTransport()
- WebService大讲堂之Axis2.pdf 此时pdf,这里连接到作者博客