Jboss EAP 6 JAX-WS和JMS超时设置
程序员文章站
2022-03-07 12:25:24
...
1. WS Client Timeout
在Jboss EAP 6中调用web service,发生以下错误:
Invoke has thrown exception, unwinding now: org.apache.cxf.interceptor.Fault: Could not send Message
java.net.SocketTimeoutException: Read timed out
调用WS有两个超时参数:
- ConnectionTimeout
Specifies the amount of time, in milliseconds, that the client will attempt to establish a connection before it times out. The default is 30000 (30 seconds). 0 specifies that the client will continue to attempt to open a connection indefinitely. - ReceiveTimeout
Specifies the amount of time, in milliseconds, that the client will wait for a response before it times out. The default is 60000. 0 specifies that the client will wait indefinitely.
在Java 代码中可如下设置:
QName serviceName = new QName("namespaceURI", "serviceName"); QName portName = new QName("namespaceURI", "port"); Service service = Service.create("wsdl", serviceName); Dispatch<SOAPMessage> dispatch = service.createDispatch(portName, SOAPMessage.class, Service.Mode.MESSAGE); dispatch.getRequestContext().put("javax.xml.ws.client.connectionTimeout", 3 * 60 * 1000); dispatch.getRequestContext().put("javax.xml.ws.client.receiveTimeout", 5 * 60 * 1000); SOAPMessage response = dispatch.invoke(msg);
2. JMS Client Timeout
Got an error while processing JMS: Failed to connect to any server. Servers tried: Operation failed with status WAITING after 5000 MILLISECONDS
Properties props = new Properties(); // timeout is in milli. seconds. Here we configure a 10 second timeout props.put("jboss.naming.client.connect.timeout", "10000"); Context context = new InitialContext(props);