在myeclipse中,在wsdl文件中点右键,在Web Services中有一个Generate Client功能,使用它生成的客户端,client type选择java proxy,服务器使用axis。这样生成后使用:String endpoint = "http://localhost/wstest/services/IWSTestService";
IWSTestServiceProxy serverProxy = new IWSTestServiceProxy(endpoint);serverProxy.hello();这样来调用hello()服务。但是不知道怎么设置超时时间,在生成的客户端代码中:IWSTestServiceProxy._initIWSTestServiceProxy方法中使用:((org.apache.axis.client.Stub)iWSTestService_PortType).setTimeout(10000);这样并不起作用,不知道是为什么。有人这样用过吗?注意我不是使用wsdl文件中点右键选 MyEclipse后使用New Web Service Client这个来生成客户端的。希望有用过的帮忙。

解决方案 »

  1.   

    真不知道怎么设置超时,用休眠应该可以吧,这样思路不知道行不行,能否用睡眠20秒的方式,Thread.currentThread().sleep(20000),
    如果20秒后没有给你返回信息(休眠结束后判断call==null),则停止等待 
      

  2.   

    client_sub.getOptions().setTimeOutInMilliSeconds(1000*60);client_sub表示一个客户端上的存根对象。
      

  3.   

    或者在web service的服务器上设置服务器的连接超时时间。
      

  4.   

    请问client_sub你这个是怎么得到的啊?你知道我是用什么方法来调用服务的吗?
    我怎么找不到有这个API?
      

  5.   

    我查了一下,这个是axis2的API吧?如果是axis1.4呢,我用的是系统自带的产生的客户端。
      

  6.   


    是java的axis的客户端调用,看你说服务端是用axis搭建的,所以这样推荐的。
    最好在客户端设置,服务器是个后备方案。
      

  7.   

    这个还跟服务器端用什么有关?如果我客户端就是axis1的实现呢,上面的API没有,好像都不起作用,因为我在服务端设置了等待一段时间返回,客户端还是不能在我设置的时间内超时抛出异常。