Zum Inhalt springen

Problem bei Java Servlet mit XML


Empfohlene Beiträge

Geschrieben

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) {

    }


	}		

}

Geschrieben

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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...