Hey Gota,
I am already change source on XML packets, but not solve problem ,
This is Exception :
org.xmlpull.v1.XmlPullParserException : start tag not allowed in epilog but got m
<position: END_TAG seen …<m… @1:96>
at org.xmlpull.mxp1.MXParser.parseEpilogMXParser.java:1588
at org.xmlpull.mxp1.MXParser.nextImplMXParser.java:1393
at org.xmlpull.mxp1.MXParser.nextTokenMXParser.java:1100
at org.dom4j.io.XPPPacketReader.parseDocumentXPPPacketReader.java:268
at org.jivesoftware.messenger.plugin.ForumSocketReader.readStream
at org.jivesoftware.messenger.plugin.ForumSocketReader.run<ForumSocketReader.java: 116>
at java.lang.Thread.runThread.java:595
This is source of ForumSocketReader.java
public class ForumSocketReader implements Runnable {
private static String CHARSET = “UTF-8”;
private static XmlPullParserFactory factory = null;
private MessageRouter messageRouter;
private PresenceRouter presenceRouter;
private XMPPServer localServer;
private Socket socket;
private Writer writer;
protected boolean open;
XPPPacketReader reader = null;
static {
try {
factory = XmlPullParserFactory.newInstance();
}
catch (XmlPullParserException e) {
Log.error(“Error creating a parser factory”, e);
}
}
public ForumSocketReader(XMPPServer xmppServer,Socket socket){
localServer = xmppServer;
messageRouter = localServer.getMessageRouter();
presenceRouter = localServer.getPresenceRouter();
this.socket = socket;
try {
writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), CHARSET));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void run() {
try {
reader = new XPPPacketReader();
reader.setXPPFactory(factory);
try {
reader.getXPPParser().setInput(new InputStreamReader(socket.getInputStream(),CHARSET));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
readStream();
} catch (Exception e) {
e.printStackTrace();
}
}catch (XmlPullParserException e) {
e.printStackTrace();
}finally{
//shutdown();
}
}
private void readStream() throws Exception {
open = true;
while (open) {
Element doc = reader.parseDocument().getRootElement();
if (doc == null) {
// Stop reading the stream since the client has sent an end of
// stream element and probably closed the connection.
return;
}
String tag = doc.getName();
if (“message”.equals(tag)) {
Message packet = null;
packet = new Message(doc);
messageRouter.route(packet);
}
else{
//Unknow Packet
open = false;
}
}
}
}
protected void shutdown() {
messageRouter = null;
presenceRouter = null;
}
}
Message was edited by:
zhuam