java?webservice超時(shí)時(shí)間設(shè)置方法代碼
一、前言
之前遇到過(guò)rabbitmq隊(duì)列卡死的問(wèn)題,有消費(fèi)者,但是就不消費(fèi)隊(duì)列里的消息;
后來(lái)發(fā)現(xiàn)是消費(fèi)者執(zhí)行webservice方法時(shí),沒(méi)有設(shè)置超時(shí)時(shí)間,默認(rèn)永不超時(shí),然后趕上對(duì)端系統(tǒng)出問(wèn)題,方法就一直執(zhí)行不完,隊(duì)列消息也就一直卡住不動(dòng)。(加try-catch是沒(méi)有用的,catch不到,就是沒(méi)有執(zhí)行完一直卡住,因?yàn)槌瑫r(shí)時(shí)間默認(rèn)永不超時(shí))
在此總結(jié)下java webservice設(shè)置超時(shí)時(shí)間的方法。
二、代碼
try { JaxWsDynamicClientFactory dcf=JaxWsDynamicClientFactory.newInstance(); //這里有2種方法,不確定到底是哪種,就都寫上了 dcf.getJaxbContextProperties().put("com.sun.xml.ws.request.timeout", 10000); dcf.getJaxbContextProperties().put("com.sun.xml.ws.connect.timeout", 10000); dcf.getJaxbContextProperties().put("com.sun.xml.internal.ws.connection.timeout", 10000);//建立連接的超時(shí)時(shí)間為10秒 dcf.getJaxbContextProperties().put("com.sun.xml.internal.ws.request.timeout", 10000);//指定請(qǐng)求的響應(yīng)超時(shí)時(shí)間為10秒 LOGGER.info("設(shè)置超時(shí)時(shí)間"); Client client= dcf.createClient("http://128.0.0.1/A/services/BService?wsdl"); //這里再設(shè)置超時(shí)時(shí)間好像也行 //client.getRequestContext().put("com.sun.xml.ws.request.timeout", 10000); //client.getRequestContext().put("com.sun.xml.ws.connect.timeout", 10000); //client.getRequestContext().put("com.sun.xml.internal.ws.connection.timeout", 10000);//建立連接的超時(shí)時(shí)間為10秒 //client.getRequestContext().put("com.sun.xml.internal.ws.request.timeout", 10000);//指定請(qǐng)求的響應(yīng)超時(shí)時(shí)間為10秒 //如果不設(shè)置超時(shí)時(shí)間,那么如果連接不通,就會(huì)卡在這一步 Object[] resultObj = client.invoke("createOrenableAccount", new Object[] { accountToXML("abc") }); String retXML = resultObj[0].toString(); StringReader read = new StringReader(retXML); InputSource source = new InputSource(read); SAXBuilder sb = new SAXBuilder(); Document doc = sb.build(source); Element root = doc.getRootElement(); LOGGER.info(root.getChildText("code"));// 0 成功 LOGGER.info(root.getChildText("code") + ", " + root.getChildText("message")); } catch (Exception e) { LOGGER.error((new StringBuilder("invokeWS Exception:")).append(e).toString(),e); } ------------------ public static String accountToXML(String userName) { Document document = null; Element et = new Element("account"); document = new Document(et); document = addNode(document, "appname", "AI"); document = addNode(document, "uid", userName); document = addNode(document, "eruid", userName); return documentStr(document); } ------------------- public static String documentStr(Document document) { XMLOutputter xop = new XMLOutputter(); String xmlStr = xop.outputString(document); return xmlStr; } ------------------------ pom.xml是這樣: <!-- Apache CXF --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-rs-client</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.0.0</version> </dependency>
總結(jié)
到此這篇關(guān)于java webservice超時(shí)時(shí)間設(shè)置方法的文章就介紹到這了,更多相關(guān)java webservice超時(shí)時(shí)間設(shè)置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot中路徑參數(shù)帶 (%2F)的問(wèn)題徹底解決方案
這篇文章主要介紹了徹底解決Springboot中路徑參數(shù)帶(%2F)的問(wèn)題,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06JAVA開(kāi)發(fā)環(huán)境Vs?code配置步驟詳解
這篇文章主要為大家介紹了JAVA開(kāi)發(fā)環(huán)境Vs?code配置步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04Mybatis中的PageHelper的執(zhí)行流程分析
這篇文章主要介紹了Mybatis的PageHelper執(zhí)行流程,本文給大家介紹介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02詳解Java Web項(xiàng)目啟動(dòng)執(zhí)行順序
這篇文章主要介紹了詳解Java Web項(xiàng)目啟動(dòng)執(zhí)行順序,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Spring?Boot?接口加解密功能實(shí)現(xiàn)
在我們?nèi)粘5腏ava開(kāi)發(fā)中,免不了和其他系統(tǒng)的業(yè)務(wù)交互,或者微服務(wù)之間的接口調(diào)用;如果我們想保證數(shù)據(jù)傳輸?shù)陌踩?,?duì)接口出參加密,入?yún)⒔饷?,這篇文章主要介紹了Spring?Boot?接口加解密功能實(shí)現(xiàn),需要的朋友可以參考下2023-04-04SpringBoot快速過(guò)濾出一次請(qǐng)求的所有日志的示例代碼
在現(xiàn)網(wǎng)出現(xiàn)故障時(shí),我們經(jīng)常需要獲取一次請(qǐng)求流程里的所有日志進(jìn)行定位,本文給大家介紹了SpringBoot如何快速過(guò)濾出一次請(qǐng)求的所有日志,文中有相關(guān)的代碼和示例供大家參考,需要的朋友可以參考下2024-03-03