日期:2014-05-19 浏览次数:20790 次
package com.hoo.service;
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;
/**
 * <b>function:</b>HelloWorldService 客户端调用代码
 * @author hoojo
 * @createDate 2011-1-7 下午03:55:05
 * @file HelloWorldClient.java
 * @package com.hoo.service
 * @project Axis2WebService
 * @blog http://blog.csdn.net/IBM_hoojo
 * @email hoojo_@126.com
 * @version 1.0
 */
public class HelloWorldClient {
    public static void main(String[] args) throws AxisFault {
        //RPCServiceClient是RPC方式调用
        RPCServiceClient client = new RPCServiceClient();
        Options options = client.getOptions();
        //设置调用WebService的URL
        String address = "http://localhost:8080/serviceUi";
        EndpointReference epf = new EndpointReference(address);
        options.setTo(epf);
        
        /**
         * 设置将调用的方法,http://ws.apache.org/axis2是方法
         * 默认(没有package)命名空间,如果有包名
         * sayHello就是方法名称了
         */
        QName qname = new QName("http://FirstBosentServices.firstbosent.bosent.com", "selectClassTeam");
        //指定调用的方法和传递参数数据,及设置返回值的类型
        Object[] result = client.invokeBlocking(qname, new Object[] { "jack" }, new Class[] { String.class });
        System.out.println(result[0].toString());
    }
}
------解决方案--------------------
目前服务的已经可以生成wsdl文件,但不知道第三方是什么编程语言
如何让第三方来调用我们的服务的,求相关经验。
=========================
你不需要知道,对方可以是任意的语言,两边通过符合SOAP的XML通信,自己负责自己这边的解析。
你把功能做出来就完事了,如果需要明文的用户校验,把验证信息作为参数加到你的WebMethod里去就可以。