webservice超时设置

webservice超时设置,第1张

package com.primeton.mq.test

importcom.primeton.mq.service.DemoService

importorg.apache.cxf.endpoint.Client

importorg.apache.cxf.jaxws.JaxWsProxyFactoryBean

importorg.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory

importorg.apache.cxf.transport.http.HTTPConduit

importorg.apache.cxf.transports.http.configuration.HTTPClientPolicy

publicclassdemo{

publicstaticvoid main(String[] args) {

//创建动态客户端

JaxWsDynamicClientFactoryfactory =JaxWsDynamicClientFactory.newInstance()

Clientclient = factory.createClient("http://localhost:8090/demo/api?wsdl")

// 需要密码的情况需要加上用户名和密码

//client.getOutInterceptors().add(new ClientLoginInterceptor(USER_NAME,PASS_WORD))

HTTPConduitconduit = (HTTPConduit) client.getConduit()

HTTPClientPolicyhttpClientPolicy = newHTTPClientPolicy()

httpClientPolicy.setConnectionTimeout(2000)//连接超时

httpClientPolicy.setAllowChunking(false)//取消块编码

httpClientPolicy.setReceiveTimeout(120000)//响应超时

        conduit.setClient(httpClientPolicy)

//client.getOutInterceptors().addAll(interceptors)//设置拦截器

try{

Object[] objects = newObject[0]

// invoke("方法名",参数1,参数2,参数3....)

objects = client.invoke("sayHello","sujin")

System.out.println("返回数据:"+ objects[0])

}catch(Exceptione){

          e.printStackTrace()

      }

可能是wsdl2java命令没有生成超时的代码,具体需要研究下生成代码的wsdl2java的工作原理,我一般都是手动设置超时时间

Service service = new Service()

Call call = (Call) service.createCall()

call.setTimeout(1000*60*15)//设置超时时间 15分钟


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11320493.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存