Hallo Zusammen,
es geht um Folgendes:
ich habe eine Klasse WebSiteReader.java (siehe unten), die den Text einer Web-Seite auslesen und als String zurückgeben muss. Den Code habe ich aus verschiedenen Foren zusammengeschnitten, so wie ich das brauche und habe bereits mit verschiedenen Links ausprobiert. Das funktioniert.
Nun habe ich ein Problem. Ich muss den WebSiteReader.java in Zusammenarbeit mit einem AnnotationService (für mich blackbox) verwenden, der den Text von WebSiteReader mit Begriffen aus einer Ontologie annotieren muss.
Nach dem Aufruf des WebSiteReader, wird der AnnotationService aufgerufen, ungefähr so:
String textToAnnotate = util.getTextFromHTML(url, myProxyPort, myProxy);
as = annotationservice.client.Client.annotateText(textToAnnotate, urlOnto, strategy, serviceURL);
Da bekomme ich aber eine Exception:
Exception in thread "main" org.apache.axis2.AxisFault: Software caused connection abort: recv failed
(Die vollständige Fehlermeldung siehe nach dem Quellcode).
Also WebSiteReader und AnnotationService wolle noffensichtlich nicht zusammen arbeiten und es liegt nicht am Text, der übergeben wird. Diese zwei Aufrufe funktionieren in der Reihenfolge WebSiteReader -> AnnotationService nicht (umgekehrt aber schon).
Irgendwas stimmt mit der Klasse WebSiteReader nicht (mit den Einstellungen der Systemeigenschften, Connection ooder oder oder). Ich bitte um Hilfe! ???:L
Und Leute, bitte einfacher erklären, habe im Programmieren nicht viel Erfahrung.
Mein Betriebsystem: Windows XP
Entwicklungsumgebung: Eclipse
Java 1.6
Ich hoffe, ich habe genügend Informationen geliefert.
Gruss, Anja
**********************
Fehlermeldung:
Exception in thread "main" org.apache.axis2.AxisFault: Software caused connection abort: recv failed
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:193)
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:371)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:209)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:448)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:401)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
at org.eu_orchestra.oa.annotationservice.AnnotationServiceStub.annotateText(AnnotationServiceStub.java:331)
at de.fraunhofer.iitb.annotationservice.client.Client.annotateText(Client.java:95)
at Test1.doTest3(Test1.java:88)
at Test1.main(Test1.java:582)
Caused by: java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1413)
at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)
at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)
at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:542)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:189)
... 11 more
es geht um Folgendes:
ich habe eine Klasse WebSiteReader.java (siehe unten), die den Text einer Web-Seite auslesen und als String zurückgeben muss. Den Code habe ich aus verschiedenen Foren zusammengeschnitten, so wie ich das brauche und habe bereits mit verschiedenen Links ausprobiert. Das funktioniert.
Nun habe ich ein Problem. Ich muss den WebSiteReader.java in Zusammenarbeit mit einem AnnotationService (für mich blackbox) verwenden, der den Text von WebSiteReader mit Begriffen aus einer Ontologie annotieren muss.
Nach dem Aufruf des WebSiteReader, wird der AnnotationService aufgerufen, ungefähr so:
String textToAnnotate = util.getTextFromHTML(url, myProxyPort, myProxy);
as = annotationservice.client.Client.annotateText(textToAnnotate, urlOnto, strategy, serviceURL);
Da bekomme ich aber eine Exception:
Exception in thread "main" org.apache.axis2.AxisFault: Software caused connection abort: recv failed
(Die vollständige Fehlermeldung siehe nach dem Quellcode).
Also WebSiteReader und AnnotationService wolle noffensichtlich nicht zusammen arbeiten und es liegt nicht am Text, der übergeben wird. Diese zwei Aufrufe funktionieren in der Reihenfolge WebSiteReader -> AnnotationService nicht (umgekehrt aber schon).
Irgendwas stimmt mit der Klasse WebSiteReader nicht (mit den Einstellungen der Systemeigenschften, Connection ooder oder oder). Ich bitte um Hilfe! ???:L
Und Leute, bitte einfacher erklären, habe im Programmieren nicht viel Erfahrung.
Mein Betriebsystem: Windows XP
Entwicklungsumgebung: Eclipse
Java 1.6
Ich hoffe, ich habe genügend Informationen geliefert.
Gruss, Anja
Java:
package MyUtilities;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.Properties;
import javax.swing.text.BadLocationException;
import javax.swing.text.html.HTML;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.parser.ParserDelegator;
public class WebSiteReader
{
public String getTextFromHTML (URL url, String myProxyPort, String myProxy)
{
try
{
if(myProxyPort != null && myProxy != null)
{
Properties systemSettings = System.getProperties();
systemSettings.put("http.proxyPort", myProxyPort);
systemSettings.put("http.proxyHost", myProxy);
}
URLConnection connection = url.openConnection( );
InputStream is = connection.getInputStream( );
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String content = "";
HTMLEditorKit htmlKit = new HTMLEditorKit( );
HTMLDocument htmlDoc = (HTMLDocument) htmlKit.createDefaultDocument( );
HTMLEditorKit.Parser parser = new ParserDelegator( );
HTMLEditorKit.ParserCallback callback = htmlDoc.getReader(0);
parser.parse(br, callback, true);
is.close();
isr.close();
br.close();
for (HTMLDocument.Iterator iterator = htmlDoc.getIterator(HTML.Tag.CONTENT); iterator
.isValid(); iterator.next())
{
int startOffset = iterator.getStartOffset();
int endOffset = iterator.getEndOffset();
int length = endOffset - startOffset;
String text = htmlDoc.getText(startOffset, length);
content += text;
}
return content;
}
/* catch(MalformedURLException e0)
{
// TODO Auto-generated catch block
System.out.println("Überprüfen Sie die Schreibweise der URL und versuchen Sie es erneut.");
//e0.printStackTrace();
return null;
}*/
catch (IOException e1)
{
e1.printStackTrace();
return null;
}
catch ( BadLocationException e2)
{
e2.printStackTrace();
return null;
}
finally
{
}
}
}
**********************
Fehlermeldung:
Exception in thread "main" org.apache.axis2.AxisFault: Software caused connection abort: recv failed
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:193)
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:371)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:209)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:448)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:401)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
at org.eu_orchestra.oa.annotationservice.AnnotationServiceStub.annotateText(AnnotationServiceStub.java:331)
at de.fraunhofer.iitb.annotationservice.client.Client.annotateText(Client.java:95)
at Test1.doTest3(Test1.java:88)
at Test1.main(Test1.java:582)
Caused by: java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1413)
at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)
at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)
at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:542)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:189)
... 11 more
Zuletzt bearbeitet: