Я пытаюсь прочитать XML, который отправляется в мое Java-приложение.У меня изначально было это на моем сервере Glassfish работает.Рабочий код Glassfish выглядит следующим образом:
public class XMLPush implements Serializable
{
public void processXML()
{
StringBuilder sb = new StringBuilder();
BufferedReader br = null;
try
{
br = ((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()).getReader ();
String s = null;
while((s = br.readLine ()) != null)
{
sb.append ( s );
}
//other code to process xml
...........
.............................
}catch(Exception ex)
{
XMLCreator.exceptionOutput ( "processXML","Exception",ex);
}
....
.....
}//processXML
}//class
Он отлично работает, но мой клиент не может установить Glassfish на своем сервере.Я пытался получить сырой XML из php, но я не мог заставить его работать.Я решил открыть сокет и прослушать толчок xml вручную.Вот мой код для получения push:
public class ListenerService extends Thread
{
private BufferedReader reader = null;
private String line;
public ListenerService ( Socket connection )thows Exception
{
this.reader = new BufferedReader ( new InputStreamReader ( connection.getInputStream () ) );
this.line = null;
}//ListenerService
@Override
public void run ()
{
try
{
while ( (this.line = this.reader.readLine ()) != null)
{
System.out.println ( this.line );
........
}//while
} System.out.println ( ex.toString () );
}
} catch ( Exception ex )
{
...
}//catch
}//run
Я не много занимался программированием сокетов, но из того, что я прочитал за последнюю неделю, является то, что передача xml в строку - это плохо.Что я делаю неправильно, и почему на сервере Glassfish это работает, а когда я просто открываю сокет, это не так?
Это все, что я получаю от push:
PUT /?XML_EXPORT_REASON=ResponseLoop&TIMESTAMP=1292559547 HTTP/1.1
Host: ************************
Accept: */*
Content-Length: 470346
Expect: 100-continue
<?xml version="1.0" encoding="UTF-8" ?>
Куда делся xml?Это потому, что я помещаю это в строку?Мне просто нужно взять XML и сохранить его в файл, а затем обработать его.Все остальное работает, но это. Любая помощь будет принята с благодарностью.