Zum Inhalt springen

Problem bei Java Servlet mit XML


Robson

Empfohlene Beiträge

Hallo ich will das mein Servlet ein XML einliest an dieses File noch die IP des Sender hängt und dieses dan als Post request auf eine andere Adresse schickt.

Ich hab es bis jetzt so.

Da anhängen der IP fuktioniert nur will er keinen anständigen Post Request senden. Jemand ne Ahnung woran das liegen kann?



import java.io.*;

import java.net.InetAddress;

import java.net.Socket;


import javax.servlet.*;

import javax.servlet.http.*;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.FactoryConfigurationError;

import javax.xml.parsers.ParserConfigurationException;

import javax.xml.transform.Transformer;

import javax.xml.transform.TransformerConfigurationException;

import javax.xml.transform.TransformerException;

import javax.xml.transform.TransformerFactory;

import javax.xml.transform.dom.DOMSource;

import javax.xml.transform.stream.StreamResult;


import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.xml.sax.SAXException;


public class Doorlock extends HttpServlet{


	public void doGet(HttpServletRequest request,

			  HttpServletResponse response)

			  throws ServletException, IOException{


	String remoteIP = request.getRemoteAddr(); 

    DocumentBuilder builder = null;


    try {

			builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();

			} catch (ParserConfigurationException e) {

			e.printStackTrace();

			} catch (FactoryConfigurationError e) {

			e.printStackTrace();

	}


	Document doc = null;


	try {

		doc = builder.parse("example.xml");

			} catch (SAXException e1) {

			e1.printStackTrace();

			} catch (IOException e1) {

			e1.printStackTrace();

	}


	Element mess = (Element) doc.getElementsByTagName("MESSAGE").item(0); 

    mess.setAttribute("IP",remoteIP); 

    TransformerFactory tFactory = TransformerFactory.newInstance(); 

    Transformer transformer = null;


    try {

			transformer = tFactory.newTransformer();

			} catch (TransformerConfigurationException e2) {

			e2.printStackTrace();

			}


	DOMSource source = new DOMSource(doc); 

    StringWriter resultStringBuffer = new StringWriter(); 


    try {

    		transformer.transform(source, new StreamResult(resultStringBuffer));

			} catch (TransformerException e3) {

			e3.printStackTrace();

			} 


	String result = resultStringBuffer.toString(); 


	try {


		// Create a socket to the host

        String hostname = "server03";

        int port = 8000;

        InetAddress addr = InetAddress.getByName(hostname);

        Socket socket = new Socket(addr, port);


        // Send header

        String path = "/sap/xi/adapter_plain?bs=ServerRS&interface=ROW_OUT&namespace=RS&QOS=EO";

        BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF8"));

        wr.write("POST "+path+" HTTP/1.1\r\n");

        wr.write("Host: "+hostname+"\r\n");

        wr.write("Accept: */*\r\n");

        wr.write("Content-Length:"+result.length()+"\r\n");

        wr.write("\r\n");

        wr.write(result);

        wr.flush();

        wr.close();


        System.out.println(result);

    } catch (Exception e) {

    }


	}		

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

der antwortet irgendwie gar nicht.

der nimmt die xml die ich in die variable result geschrieben habe irgendwie nicht an.

Wenn ich schonmal dabei bin. Ich hab da noch das Problem das ich die XML Daten die ich weiterleite zurzeit noch aus einer Datei lese.

Die will ich aber jetzt aus einem POST Request lesen. Wie mache ich das?

Also ein Server schickt eine XML auf mein Servelt, diese soll diese XML nun aufnehmen ip anhängen und einen neuen POST Request erzeugen und an ein anderes System schicken.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...