Bonjour,
J'ai réalisé une appli en PHP. Je voudrais la tester via java. Dans mon appli java, je dois donc parser les flux (forcément HTML) envoyé par le PHP. Il se trouve que je parse un flux (XHTML) sur mon localhost. Mais voila j'ai une URL exception. voici la trace de l'exception
voici comment j'appelle mon handler (plus bas)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Exception in thread "main" java.net.SocketException: Permission denied: connect at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) at java.net.AbstractPlainSocketImpl.connect(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at sun.net.NetworkClient.doConnect(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.<init>(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at java.net.URL.openStream(Unknown Source) at org.apache.xerces.impl.XMLEntityManager.startEntity(XMLEntityManager.java:807) at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:767) at org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:275) at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(XMLDocumentScannerImpl.java:841) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:329) at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:525) at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:581) at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152) at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1114) at org.skyrecon.skyline.parsers.XHTMLParser.<init>(XHTMLParser.java:16) at org.skyrecon.skyline.emulation.main.VirtualUser.connect(VirtualUser.java:75) at org.skyrecon.skyline.emulation.main.Main.main(Main.java:13)
et voici mon handler
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 XMLReader saxReader = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser"); saxReader.setContentHandler(new SkyHandler()); saxReader.parse(uri); System.out.println("trying to parse "+uri);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82 import org.xml.sax.Attributes; import org.xml.sax.ContentHandler; import org.xml.sax.Locator; import org.xml.sax.SAXException; import org.xml.sax.helpers.LocatorImpl; public class SkyHandler implements ContentHandler { private Locator locator = null; public SkyHandler() { super(); this.locator = new LocatorImpl(); } public void setDocumentLocator(Locator value) { this.locator = value; } public void startDocument() throws SAXException { System.out.println("Debut de l'analyse du document"); } public void endDocument() throws SAXException { System.out.println("Fin de l'analyse du document" ); } public void startElement(String nameSpaceURI, String localName, String rawName, Attributes attributs) throws SAXException { System.out.println("Ouverture de la balise : " + localName); if ( ! "".equals(nameSpaceURI)) { System.out.println(" appartenant a l'espace de nom : " + nameSpaceURI); } System.out.println(" Attributs de la balise : "); for (int index = 0; index < attributs.getLength(); index++) { System.out.println(" - " + attributs.getLocalName(index) + " = " + attributs.getValue(index)); } } public void endElement(String nameSpaceURI, String localName, String rawName) throws SAXException { System.out.print("Fermeture de la balise : " + localName); if ( ! "".equals(nameSpaceURI)) { System.out.print("appartenant a l'espace de nommage : " + localName); } System.out.println(); } @Override public void characters(char[] arg0, int arg1, int arg2) throws SAXException { // TODO Auto-generated method stub } @Override public void endPrefixMapping(String arg0) throws SAXException { // TODO Auto-generated method stub } @Override public void ignorableWhitespace(char[] arg0, int arg1, int arg2) throws SAXException { // TODO Auto-generated method stub } @Override public void processingInstruction(String arg0, String arg1) throws SAXException { // TODO Auto-generated method stub } @Override public void skippedEntity(String arg0) throws SAXException { // TODO Auto-generated method stub } @Override public void startPrefixMapping(String arg0, String arg1) throws SAXException { // TODO Auto-generated method stub } }
Partager