[JBoss JIRA] (WFLY-4480) Websocket exception using async remote
by nicolas desmaziers (JIRA)
nicolas desmaziers created WFLY-4480:
----------------------------------------
Summary: Websocket exception using async remote
Key: WFLY-4480
URL: https://issues.jboss.org/browse/WFLY-4480
Project: WildFly
Issue Type: Bug
Components: Web Sockets
Affects Versions: 9.0.0.Beta2
Reporter: nicolas desmaziers
Assignee: Stuart Douglas
Sending binary messages on the AsyncRemote endpoint throws an error in the log:
21:11:28,747 ERROR [org.xnio.listener] (default I/O-6) XNIO001007: A channel event listener threw an exception: java.lang.IllegalStateException: XNIO000017: Buffer was already freed
at org.xnio.ByteBufferSlicePool$PooledByteBuffer.getResource(ByteBufferSlicePool.java:206)
at org.xnio.ByteBufferSlicePool$PooledByteBuffer.getResource(ByteBufferSlicePool.java:176)
at io.undertow.server.protocol.framed.AbstractFramedChannel.flushSenders(AbstractFramedChannel.java:490)
at io.undertow.server.protocol.framed.AbstractFramedChannel$FrameWriteListener.handleEvent(AbstractFramedChannel.java:793)
at io.undertow.server.protocol.framed.AbstractFramedChannel$FrameWriteListener.handleEvent(AbstractFramedChannel.java:790)
at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
at org.xnio.conduits.WriteReadyHandler$ChannelListenerHandler.writeReady(WriteReadyHandler.java:65)
at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:93)
at org.xnio.nio.WorkerThread.run(WorkerThread.java:539)
This happens after a few minutes and generally the number of errors increase rapidly and we can easily have a 2Go log after a few hours.
Code is:
session.getAsyncRemote.sendBinary(event.asReadOnlyBuffer(), new SendHandler(){
override def onResult(result:SendResult) {
}
})
It worked well with wildly 9.0 alpha 1 but bug appeared with beta 2.
I generally receive a close event on the web socket session after the error logging.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
11 years, 3 months
[JBoss JIRA] (WFLY-4476) Unable to configure cxf socket timeout in wildfly_8.2.Final
by Alessio Soldano (JIRA)
[ https://issues.jboss.org/browse/WFLY-4476?page=com.atlassian.jira.plugin.... ]
Alessio Soldano commented on WFLY-4476:
---------------------------------------
I'll have a look at this jira in the next days; in the mean time, this looks related to JBWS-3901 and JBWS-3626....
> Unable to configure cxf socket timeout in wildfly_8.2.Final
> -----------------------------------------------------------
>
> Key: WFLY-4476
> URL: https://issues.jboss.org/browse/WFLY-4476
> Project: WildFly
> Issue Type: Bug
> Components: Web Services
> Affects Versions: 8.1.0.Final, 8.2.0.Final, 9.0.0.Beta2
> Environment: Java8, Ubuntu Linux Desktop
> Reporter: George Mathias
> Assignee: Alessio Soldano
> Priority: Critical
> Labels: cxf, saaj, undertow
> Fix For: 8.2.0.Final
>
>
> Socket times out after 60 seconds when calling SAAJ webservices from a wildfly servlet. Wildfly uses CXF internally and CXF HTTP Conduit times out in 60 seconds by default. Cannot find a way to configure this timeout (Receive timeout) in standalone.xml file.
> Following line throws socket read time out exception
> responseMsg = soapConn.call(soapMessage, wsdlLoc);
> Java Call is:
> private static String callWebService(String serviceName,
> String userName,
> org.w3c.dom.Document soapRequestDoc,
> String serviceType,
> String endPointAddress,
> String remoteClientAddress,
> String remoteClientHostname,
> String remoteClientUser,
> String clientApplicationId)
> throws SOAPException,java.io.IOException,CommunicationException
> {
> SOAPConnection soapConn = null;
> String wsdlLoc=endPointAddress;
> String resp = "";
> MessageFactory msgFactory;
> SOAPFactory soapFactory;
> SOAPMessage soapMessage;
> SOAPConnectionFactory soapConnFactory;
> SOAPMessage responseMsg;
>
> try
> {
> if (wsdlLoc == null)
> throw new SOAPException("Error: Endpoint address is NULL.");
> msgFactory = MessageFactory.newInstance();
> soapFactory = SOAPFactory.newInstance();
> soapMessage = msgFactory.createMessage();
>
> //Add headers
> addSoapHeaders(soapMessage,soapFactory,
> serviceType,userName,remoteClientAddress,remoteClientHostname,
> remoteClientUser,
> clientApplicationId);
>
> //Add Body addBody(soapMessage,soapFactory,soapRequestDoc,serviceName);
>
> logger.debug(soapMessage);
> soapConnFactory = SOAPConnectionFactory.newInstance();
> soapConn = soapConnFactory.createConnection();
> logger.debug("Invoking service ["+serviceName+
> "] on WSDL ["+
> wsdlLoc+"] ...");
>
> responseMsg = soapConn.call(soapMessage, wsdlLoc);
> logger.debug("Call completed ["+serviceName+
> "] on WSDL ["+
> wsdlLoc+"]!");
> resp = processResponseMessageStringParser(responseMsg);
> logger.debug("Return Document [" + resp + "]");
> }
> catch (SOAPException e)
> {
> logger.error(e);
> throw new CommunicationException(errorBuffer.toString());
> }
> finally
> {
> try
> {
> if (soapConn != null)
> soapConn.close();
> }
> catch (Exception e)
> {
> e.printStackTrace();
> }
> }
>
> return resp;
> }
> Exception thrown is:
> javax.xml.soap.SOAPException: JBWS024004: SOAP message could not be sent
> at org.jboss.wsf.stack.cxf.saaj.SOAPConnectionImpl.call(SOAPConnectionImpl.java:124)
> at com.qwest.servlet.Client.callWebService(Client.java:225)
> at com.qwest.servlet.Client.call(Client.java:138)
> at com.qwest.servlet.TestServlet.doGet(TestServlet.java:73)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
> at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:86)
> at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
> at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
> at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
> at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
> at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
> at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
> at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)
> at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:278)
> at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
> at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:80)
> at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174)
> at io.undertow.server.Connectors.executeRootHandler(Connectors.java:199)
> at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:774)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.net.SocketTimeoutException: SocketTimeoutException invoking http://localhost:8080/TestWS/v2.0.0/TestServer?wsdl: Read timed out
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1347)
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1331)
> at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:632)
> at org.jboss.wsf.stack.cxf.saaj.SOAPConnectionImpl.call(SOAPConnectionImpl.java:120)
> ... 31 more
> Caused by: java.net.SocketTimeoutException: Read timed out
> at java.net.SocketInputStream.socketRead0(Native Method)
> at java.net.SocketInputStream.read(SocketInputStream.java:150)
> at java.net.SocketInputStream.read(SocketInputStream.java:121)
> at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
> at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
> at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
> at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:703)
> at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
> at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1534)
> at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1439)
> at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
> at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.getResponseCode(URLConnectionHTTPConduit.java:266)
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1545)
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1515)
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1318)
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
11 years, 3 months
[JBoss JIRA] (REMJMX-95) RemotingConnector violates JMXConnector#connect contract and leads to threads hanging around
by Darran Lofthouse (JIRA)
[ https://issues.jboss.org/browse/REMJMX-95?page=com.atlassian.jira.plugin.... ]
Darran Lofthouse resolved REMJMX-95.
------------------------------------
Resolution: Done
> RemotingConnector violates JMXConnector#connect contract and leads to threads hanging around
> --------------------------------------------------------------------------------------------
>
> Key: REMJMX-95
> URL: https://issues.jboss.org/browse/REMJMX-95
> Project: Remoting JMX
> Issue Type: Bug
> Components: Connection
> Affects Versions: 2.0.0.Final
> Environment: Wildfly 8.2.0
> Reporter: Sergiy Barlabanov
> Assignee: Darran Lofthouse
> Fix For: 2.0.1.CR2
>
>
> The javadoc of javax.management.remote.JMXConnector#connect says that "If connect has already been called successfully on this object, calling it again has no effect.".
> But this does not work with org.jboss.remotingjmx.RemotingConnector. Every connect result in a creation of a remoting endpoint with the corresponding io/worker threads, which are not closed when close() method is called. Only the threads from the first connect() invocation are closed, all threads created from the subsequent connect() invocations are not closed and stay alive until the VM shutdown.
> Our application currently crashes after 10 minutes running - it pulls some JMX data periodically and after some time, the VM refuses to create new threads.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
11 years, 3 months
[JBoss JIRA] (WFLY-4332) Wrong path with Stateless WebService and serviceName
by Janario Oliveira (JIRA)
[ https://issues.jboss.org/browse/WFLY-4332?page=com.atlassian.jira.plugin.... ]
Janario Oliveira closed WFLY-4332.
----------------------------------
> Wrong path with Stateless WebService and serviceName
> ----------------------------------------------------
>
> Key: WFLY-4332
> URL: https://issues.jboss.org/browse/WFLY-4332
> Project: WildFly
> Issue Type: Bug
> Components: Web Services
> Affects Versions: 8.2.0.Final
> Reporter: Janario Oliveira
> Assignee: Alessio Soldano
>
> When I have a WebService with serviceName and it is a Stateless It adds a different url.
> e.g.
> @WebService(serviceName = "StatelessWeb") @Stateless
> public class StatelessWebService {
> public boolean executeTest() {return true;}
> }
> It will be available in /StatelessWeb/StatelessWebService. Once if it isn't a stateless it will be in /StatelessWeb
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
11 years, 3 months
[JBoss JIRA] (WFLY-4476) Unable to configure cxf socket timeout in wildfly_8.2.Final
by George Mathias (JIRA)
[ https://issues.jboss.org/browse/WFLY-4476?page=com.atlassian.jira.plugin.... ]
George Mathias commented on WFLY-4476:
--------------------------------------
What would really help is to be able to supply http conduit settings to cxf from standalone.xml config file.
> Unable to configure cxf socket timeout in wildfly_8.2.Final
> -----------------------------------------------------------
>
> Key: WFLY-4476
> URL: https://issues.jboss.org/browse/WFLY-4476
> Project: WildFly
> Issue Type: Bug
> Components: Web Services
> Affects Versions: 8.1.0.Final, 8.2.0.Final, 9.0.0.Beta2
> Environment: Java8, Ubuntu Linux Desktop
> Reporter: George Mathias
> Assignee: Alessio Soldano
> Priority: Critical
> Labels: cxf, saaj, undertow
> Fix For: 8.2.0.Final
>
>
> Socket times out after 60 seconds when calling SAAJ webservices from a wildfly servlet. Wildfly uses CXF internally and CXF HTTP Conduit times out in 60 seconds by default. Cannot find a way to configure this timeout (Receive timeout) in standalone.xml file.
> Following line throws socket read time out exception
> responseMsg = soapConn.call(soapMessage, wsdlLoc);
> Java Call is:
> private static String callWebService(String serviceName,
> String userName,
> org.w3c.dom.Document soapRequestDoc,
> String serviceType,
> String endPointAddress,
> String remoteClientAddress,
> String remoteClientHostname,
> String remoteClientUser,
> String clientApplicationId)
> throws SOAPException,java.io.IOException,CommunicationException
> {
> SOAPConnection soapConn = null;
> String wsdlLoc=endPointAddress;
> String resp = "";
> MessageFactory msgFactory;
> SOAPFactory soapFactory;
> SOAPMessage soapMessage;
> SOAPConnectionFactory soapConnFactory;
> SOAPMessage responseMsg;
>
> try
> {
> if (wsdlLoc == null)
> throw new SOAPException("Error: Endpoint address is NULL.");
> msgFactory = MessageFactory.newInstance();
> soapFactory = SOAPFactory.newInstance();
> soapMessage = msgFactory.createMessage();
>
> //Add headers
> addSoapHeaders(soapMessage,soapFactory,
> serviceType,userName,remoteClientAddress,remoteClientHostname,
> remoteClientUser,
> clientApplicationId);
>
> //Add Body addBody(soapMessage,soapFactory,soapRequestDoc,serviceName);
>
> logger.debug(soapMessage);
> soapConnFactory = SOAPConnectionFactory.newInstance();
> soapConn = soapConnFactory.createConnection();
> logger.debug("Invoking service ["+serviceName+
> "] on WSDL ["+
> wsdlLoc+"] ...");
>
> responseMsg = soapConn.call(soapMessage, wsdlLoc);
> logger.debug("Call completed ["+serviceName+
> "] on WSDL ["+
> wsdlLoc+"]!");
> resp = processResponseMessageStringParser(responseMsg);
> logger.debug("Return Document [" + resp + "]");
> }
> catch (SOAPException e)
> {
> logger.error(e);
> throw new CommunicationException(errorBuffer.toString());
> }
> finally
> {
> try
> {
> if (soapConn != null)
> soapConn.close();
> }
> catch (Exception e)
> {
> e.printStackTrace();
> }
> }
>
> return resp;
> }
> Exception thrown is:
> javax.xml.soap.SOAPException: JBWS024004: SOAP message could not be sent
> at org.jboss.wsf.stack.cxf.saaj.SOAPConnectionImpl.call(SOAPConnectionImpl.java:124)
> at com.qwest.servlet.Client.callWebService(Client.java:225)
> at com.qwest.servlet.Client.call(Client.java:138)
> at com.qwest.servlet.TestServlet.doGet(TestServlet.java:73)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
> at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:86)
> at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
> at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
> at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
> at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
> at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
> at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
> at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)
> at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:278)
> at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
> at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:80)
> at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174)
> at io.undertow.server.Connectors.executeRootHandler(Connectors.java:199)
> at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:774)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.net.SocketTimeoutException: SocketTimeoutException invoking http://localhost:8080/TestWS/v2.0.0/TestServer?wsdl: Read timed out
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1347)
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1331)
> at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:632)
> at org.jboss.wsf.stack.cxf.saaj.SOAPConnectionImpl.call(SOAPConnectionImpl.java:120)
> ... 31 more
> Caused by: java.net.SocketTimeoutException: Read timed out
> at java.net.SocketInputStream.socketRead0(Native Method)
> at java.net.SocketInputStream.read(SocketInputStream.java:150)
> at java.net.SocketInputStream.read(SocketInputStream.java:121)
> at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
> at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
> at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
> at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:703)
> at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
> at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1534)
> at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1439)
> at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
> at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.getResponseCode(URLConnectionHTTPConduit.java:266)
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1545)
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1515)
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1318)
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
11 years, 3 months
[JBoss JIRA] (WFLY-4476) Unable to configure cxf socket timeout in wildfly_8.2.Final
by George Mathias (JIRA)
[ https://issues.jboss.org/browse/WFLY-4476?page=com.atlassian.jira.plugin.... ]
George Mathias commented on WFLY-4476:
--------------------------------------
I was able to fix a workaround by changing receive timeout in apache-cxf source and rebuilding it for wildfly8.2
> Unable to configure cxf socket timeout in wildfly_8.2.Final
> -----------------------------------------------------------
>
> Key: WFLY-4476
> URL: https://issues.jboss.org/browse/WFLY-4476
> Project: WildFly
> Issue Type: Bug
> Components: Web Services
> Affects Versions: 8.1.0.Final, 8.2.0.Final, 9.0.0.Beta2
> Environment: Java8, Ubuntu Linux Desktop
> Reporter: George Mathias
> Assignee: Alessio Soldano
> Priority: Critical
> Labels: cxf, saaj, undertow
> Fix For: 8.2.0.Final
>
>
> Socket times out after 60 seconds when calling SAAJ webservices from a wildfly servlet. Wildfly uses CXF internally and CXF HTTP Conduit times out in 60 seconds by default. Cannot find a way to configure this timeout (Receive timeout) in standalone.xml file.
> Following line throws socket read time out exception
> responseMsg = soapConn.call(soapMessage, wsdlLoc);
> Java Call is:
> private static String callWebService(String serviceName,
> String userName,
> org.w3c.dom.Document soapRequestDoc,
> String serviceType,
> String endPointAddress,
> String remoteClientAddress,
> String remoteClientHostname,
> String remoteClientUser,
> String clientApplicationId)
> throws SOAPException,java.io.IOException,CommunicationException
> {
> SOAPConnection soapConn = null;
> String wsdlLoc=endPointAddress;
> String resp = "";
> MessageFactory msgFactory;
> SOAPFactory soapFactory;
> SOAPMessage soapMessage;
> SOAPConnectionFactory soapConnFactory;
> SOAPMessage responseMsg;
>
> try
> {
> if (wsdlLoc == null)
> throw new SOAPException("Error: Endpoint address is NULL.");
> msgFactory = MessageFactory.newInstance();
> soapFactory = SOAPFactory.newInstance();
> soapMessage = msgFactory.createMessage();
>
> //Add headers
> addSoapHeaders(soapMessage,soapFactory,
> serviceType,userName,remoteClientAddress,remoteClientHostname,
> remoteClientUser,
> clientApplicationId);
>
> //Add Body addBody(soapMessage,soapFactory,soapRequestDoc,serviceName);
>
> logger.debug(soapMessage);
> soapConnFactory = SOAPConnectionFactory.newInstance();
> soapConn = soapConnFactory.createConnection();
> logger.debug("Invoking service ["+serviceName+
> "] on WSDL ["+
> wsdlLoc+"] ...");
>
> responseMsg = soapConn.call(soapMessage, wsdlLoc);
> logger.debug("Call completed ["+serviceName+
> "] on WSDL ["+
> wsdlLoc+"]!");
> resp = processResponseMessageStringParser(responseMsg);
> logger.debug("Return Document [" + resp + "]");
> }
> catch (SOAPException e)
> {
> logger.error(e);
> throw new CommunicationException(errorBuffer.toString());
> }
> finally
> {
> try
> {
> if (soapConn != null)
> soapConn.close();
> }
> catch (Exception e)
> {
> e.printStackTrace();
> }
> }
>
> return resp;
> }
> Exception thrown is:
> javax.xml.soap.SOAPException: JBWS024004: SOAP message could not be sent
> at org.jboss.wsf.stack.cxf.saaj.SOAPConnectionImpl.call(SOAPConnectionImpl.java:124)
> at com.qwest.servlet.Client.callWebService(Client.java:225)
> at com.qwest.servlet.Client.call(Client.java:138)
> at com.qwest.servlet.TestServlet.doGet(TestServlet.java:73)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
> at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:86)
> at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
> at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
> at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
> at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
> at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
> at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
> at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)
> at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:278)
> at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
> at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:80)
> at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174)
> at io.undertow.server.Connectors.executeRootHandler(Connectors.java:199)
> at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:774)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.net.SocketTimeoutException: SocketTimeoutException invoking http://localhost:8080/TestWS/v2.0.0/TestServer?wsdl: Read timed out
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1347)
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1331)
> at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:632)
> at org.jboss.wsf.stack.cxf.saaj.SOAPConnectionImpl.call(SOAPConnectionImpl.java:120)
> ... 31 more
> Caused by: java.net.SocketTimeoutException: Read timed out
> at java.net.SocketInputStream.socketRead0(Native Method)
> at java.net.SocketInputStream.read(SocketInputStream.java:150)
> at java.net.SocketInputStream.read(SocketInputStream.java:121)
> at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
> at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
> at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
> at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:703)
> at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
> at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1534)
> at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1439)
> at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
> at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.getResponseCode(URLConnectionHTTPConduit.java:266)
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1545)
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1515)
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1318)
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
11 years, 3 months