Próbuję przesyłać XMLa po sieci, ale wciąż dostaję wyjątek java.net.SocketException: Connection reset po stronie serwera podczas jego odbierania… skąd się on bierze?
Stack Trace:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager$RewindableInputStream.read(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipSpaces(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$TrailingMiscDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at xmlserver.Server.listen(Server.java:54)
at xmlserver.Main.main(Main.java:7)
Klient:
public static void main(String [] args) throws Exception
{
Socket sock = new Socket("localhost", 666);
DocumentBuilderFactory builderFactory =
DocumentBuilderFactory.newInstance();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder parser = factory.newDocumentBuilder();
Document doc = parser.newDocument();
Element root = doc.createElement("root");
doc.appendChild(root);
Element childElement = doc.createElement("Child");
childElement.setAttribute("attribute1","The value of Attribute 1");
root.appendChild(childElement);
TransformerFactory tranFactory = TransformerFactory.newInstance();
Transformer aTransformer = tranFactory.newTransformer();
Source src = new DOMSource(doc);
Result dest = new StreamResult(sock.getOutputStream());
aTransformer.transform(src, dest);
}
Server:
protected void listen()
{
System.out.println("Server started.\n\tListening for connections at port " + port);
Socket clientSock;
//while (true)
{
try
{
clientSock = servSocket.accept();
DocumentBuilderFactory builderFactory =
DocumentBuilderFactory.newInstance();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder parser = factory.newDocumentBuilder();
Document doc = parser.parse(clientSock.getInputStream()); // !!!!!!!! tutaj się wywala !!!!!!!!
System.out.println("transaction succeeded");
}
catch(Exception e)
{
System.err.println("Failed to read");
e.printStackTrace();
}
}
}[/code]