RPCClient端访问方式

public class RPCClient {
	public static void main(String[] args) throws Exception {
		// 使用RPC方式调用WebService
		RPCServiceClient serviceClient = new RPCServiceClient();
		Options options = serviceClient.getOptions();
		// 指定调用WebService的URL
		EndpointReference targetEPR = new EndpointReference("http://localhost:81/Axsi2Service/services/BookService?wsdl");
		options.setTo(targetEPR);
		// 指定ooooo方法的参数值
		Object[] opAddEntryArgs = new Object[] { "超人" };
		// 指定ooooo方法返回值的数据类型的Class对象
		Class[] classes = new Class[] { String.class };
		// 指定要调用的ooooo方法及WSDL文件的命名空间
		QName opAddEntry = new QName("http://ws.apache.org/axis2/samples/book/xsd/","ooooo");
		// 调用getGreeting方法并输出该方法的返回值
		System.out.println(serviceClient.invokeBlocking(opAddEntry,opAddEntryArgs, classes)[0]);
		// 下面是调用find方法的代码
		classes = new Class[] { int.class };
		opAddEntry = new QName("http://ws.apache.org/axis2/samples/book/xsd/", "find");
		System.out.println(serviceClient.invokeBlocking(opAddEntry,new Object[] {}, classes)[0]);
		
        //传对象和接收对象
		opAddEntry = new QName("http://ws.apache.org/axis2/samples/book/xsd/", "findBook");
		Book b = new Book();
		b.setName("This is book!");
        b.setISBN("1234-2234-3234-4234");
		opAddEntryArgs = new Object[] {b};
		OMElement  ome = serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs);
		 Iterator iterator=ome.getChildElements();
         while(iterator.hasNext()){
             OMNode omNode = (OMNode) iterator.next();
              if(omNode.getType()==omNode. ELEMENT_NODE){
                   OMElement omElement = (OMElement) omNode;
                   System. out.println( "***="+omElement.getLocalName());
                    if (omElement.getLocalName().toLowerCase().equals("return" )) {
                        Book u = (Book) BeanUtil.processObject(omElement, Book.class, null, true, new DefaultObjectSupplier(), null);
                        System. out.println(u.getName());
                   }
             }
        }
		
	}
}


你可能感兴趣的:(client)