[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

Calling WCF Service from Java -- Connection reset exceptions

Posted on 2013-01-31
6
Medium Priority
?
2,458 Views
Last Modified: 2013-02-06
Hello All,

A Java application is calling my WCF service.  Once in a while they get the follow exception:


Connection reset; nested exception is java.net.SocketException: Connection resetorg.springframework.ws.client.WebServiceIOException: I/O error: Connection reset; nested exception is java.net.SocketException: Connection reset
      at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:543)
      at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:384)
      at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:378)




This is the Java code being used to call the WCF Service:




public <T> T sendAndReceive(String uriString,
                                 WebServiceMessageCallback requestCallback,
                                 WebServiceMessageExtractor<T> responseExtractor) {
        Assert.notNull(responseExtractor, "'responseExtractor' must not be null");
        Assert.hasLength(uriString, "'uri' must not be empty");
        TransportContext previousTransportContext = TransportContextHolder.getTransportContext();
        WebServiceConnection connection = null;
        try {
            connection = createConnection(URI.create(uriString));
            TransportContextHolder.setTransportContext(new DefaultTransportContext(connection));
            MessageContext messageContext = new DefaultMessageContext(getMessageFactory());

            return doSendAndReceive(messageContext, connection, requestCallback, responseExtractor);
        }
        catch (TransportException ex) {
            throw new WebServiceTransportException("Could not use transport: " + ex.getMessage(), ex);
        }
        catch (IOException ex) {
            throw new WebServiceIOException("I/O error: " + ex.getMessage(), ex);
        }
        finally {
            TransportUtils.closeConnection(connection);
            TransportContextHolder.setTransportContext(previousTransportContext);
}


Any ideas?
0
Comment
Question by:smokinmark
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
6 Comments
 
LVL 28

Expert Comment

by:dpearson
ID: 38842847
A connection reset exception generally just means the connection has been closed.

If this call is being placed over the internet this may simply be a network connection failure - somebody dropped the data along the chain between your servers.

However if the call is over a LAN you can probably assume the connection is reliable, in which case you should look for an error that's causing the communication to not complete - e.g. an exception being thrown part way through the message sending, which then prematurely causes the client to close the connection (or socket).

Doug
0
 

Author Comment

by:smokinmark
ID: 38843755
Would you be willing to look at my web.config file for the WCF service?
0
 
LVL 28

Expert Comment

by:dpearson
ID: 38844545
Sorry - I'm not familiar with WCFs.  I've just seen those exceptions a thousand times in writing network services that operate over the web.

Doug
0
Free learning courses: Active Directory Deep Dive

Get a firm grasp on your IT environment when you learn Active Directory best practices with Veeam! Watch all, or choose any amount, of this three-part webinar series to improve your skills. From the basics to virtualization and backup, we got you covered.

 

Author Comment

by:smokinmark
ID: 38844557
I'm beginning to wonder if this is an IIS thing.

I have traced this further in the Windows Event Logs.  

"A process serving application pool 'XXX' suffered a fatal communication error with the Windows Process Activation Service. The process id was '1234'. The data field contains the error number."
0
 

Accepted Solution

by:
smokinmark earned 0 total points
ID: 38845731
Turns out this was a Red Herring.  Problem is elsewhere.  Will make a separate post.  Thanks a million.
0
 

Author Closing Comment

by:smokinmark
ID: 38858747
As posted by me.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.
How to fix incompatible JVM issue while installing Eclipse While installing Eclipse in windows, got one error like above and unable to proceed with the installation. This video describes how to successfully install Eclipse. How to solve incompa…
Suggested Courses

649 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question