on 05-16-2006 1:19 PM
Hi
I have a scenario like this
File-->XI-->J2ee application(HTTP Receiver adapter)
I want to know how XI sends xml file as a query string file name?
What ever may be the case i just need to retrieve the information from Request object and display the same in browser(JSP).How to do that, I am totally confused, please anyone help me!
Code help is highly rewarded.
Thanx
Hi
please have a look at this code which takes the Input stream and print xml to the out
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doWork(req, resp);
}
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doWork(req, resp);
}
private void doWork(HttpServletRequest req, HttpServletResponse resp) {
String path = null;
Writer out = null;
try {
resp.setContentType("text/xml");
out = resp.getWriter();
path = req.getPathInfo();
if(req.getContentLength() != -1){
outputURI(req.getInputStream(), out);
}
} catch (IOException ioe) {
return;
}
private void outputURI(InputStream resultStream, Writer out) {
if (resultStream == null) {
// no default file
//logger.error("No File to return");
return;
}
try {
DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
//Class clazz = loader.loadClass("org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
//DocumentBuilderFactoryImpl factory = (DocumentBuilderFactoryImpl) clazz.newInstance();
//DocumentBuilder parser = factory.newDocumentBuilder();
parser.setEntityResolver(new ClasspathEntityResolver());
printXML(parser.parse(resultStream), out);
resultStream.close();
} catch (Exception e) {
//logger.error("Trying to parse the output " , e);
}
}
private void printXML(Document document, Writer writer) throws Exception {
Transformer transformer = TransformerFactory.newInstance().newTransformer();
Source source = new DOMSource(document);
Result output = new StreamResult(System.out);
transformer.transform(source, output);
// Write as XML so that entity references can be resolved.
if (writer != null) {
transformer.transform(source, new StreamResult(writer));
}
}
hope this helps , please mark points for helpful answers
regards
rajeshkr
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Rajesh!
I have tried your code. But some where i went wrong. Please correct me: I am using NWDS2.0.9
my web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>WEB APP</display-name>
<description>WEB APP description</description>
<servlet>
<servlet-name>DisplayRes</servlet-name>
<servlet-class>com.quinnox.DisplayRes</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayRes</servlet-name>
<url-pattern>/DisplayRes/*</url-pattern>
</servlet-mapping>
</web-app>
my application.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
"http://java.sun.com/dtd/application_1_3.dtd">
<application>
<display-name>ReceiverEntpr</display-name>
<description>EAR description</description>
<module>
<web>
<web-uri>HttpReceiver.war</web-uri>
<context-root>/HttpReceiver</context-root>
</web>
</module>
</application>
and my servlet code:
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.Writer;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.xml.sax.EntityResolver;
import org.xml.sax.SAXException;
import com.sun.java_cup.internal.parser;
import com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl;
public class DisplayRes extends HttpServlet {
public void doGet(HttpServletRequest requset, HttpServletResponse response) throws ServletException, IOException
{
doWork(requset, response);
}
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
doWork(req, resp);
}
private void doWork(HttpServletRequest req, HttpServletResponse resp) throws IOException
{
String path = null;
PrintWriter out = null;
PrintWriter p2=resp.getWriter();
try
{
resp.setContentType("text/xml");
out = resp.getWriter();
out.println("hi");
path = req.getPathInfo();
if(req.getContentLength() != -1){
outputURI(req.getInputStream(), out);
}
} catch (IOException ioe) { return;
}
}
//private void outputURI(InputStream resultStream, Writer out) {
private void outputURI(InputStream resultStream, PrintWriter out) {
if (resultStream == null) {
// no default file
// logger.error("No File to return");
return;
}
try {
DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
// Class clazz = loader.loadClass("org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
// DocumentBuilderFactoryImpl factory = (DocumentBuilderFactoryImpl) clazz.newInstance();
// DocumentBuilder parser = factory.newDocumentBuilder();
parser.setEntityResolver(new ClassPathEntityResolver());
printXML(parser.parse(resultStream), out);
resultStream.close();
} catch (Exception e) {
// logger.error("Trying to parse the output " , e);
}
}
//private void printXML(Document document, Writer writer) throws Exception {
private void printXML(Document document, PrintWriter writer) throws Exception {
Transformer transformer = TransformerFactory.newInstance().newTransformer();
Source source = new DOMSource(document);
Result output = new StreamResult(System.out);
transformer.transform(source, output);
// Write as XML so that entity references can be resolved.
if (writer != null) {
transformer.transform(source, new StreamResult(writer));
}
}
}
Please tell me how to display in servlet.
If it is better to display in a browser. Please send me the code.
Thanks
Hi
The code is not displaying any thing on browser.
I deployed the appl on Weblogic9.0 server. How to test whether XI is sending the XML file to my J2EE appl.
I have used NWDS2.0.9 for developing J2EE appl.
This is my application.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
"http://java.sun.com/dtd/application_1_3.dtd">
<application>
<display-name>HTTPReceiver_EAR</display-name>
<description>EAR description</description>
<module>
<web>
<web-uri>HttpReceiver.war</web-uri>
<context-root>/Invoke</context-root>
</web>
</module>
</application>
This is my web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>WEB APP</display-name>
<description>WEB APP description</description>
<servlet>
<servlet-name>DisplayRes</servlet-name>
<servlet-class>com.abc.DisplayRes</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayRes</servlet-name>
<url-pattern>/DisplayRes/*</url-pattern>
</servlet-mapping>
</web-app>
public class DisplayRes extends HttpServlet {
public void doGet(HttpServletRequest requset, HttpServletResponse response) throws ServletException, IOException
{
doWork(requset, response);
}
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
doWork(req, resp);
}
private void doWork(HttpServletRequest req, HttpServletResponse resp) throws IOException
{
String path = null;
Writer out = null;
//PrintWriter out = null;
PrintWriter p2=resp.getWriter();
//ServletOutputStream outp = resp.getOutputStream();
//p2.println("This is doWork");
try
{
resp.setContentType("text/xml");
out = resp.getWriter();
// out.println("hi");
path = req.getPathInfo();
//p2.println("path is"+ path);
if(req.getContentLength() != -1){
outputURI(req.getInputStream(), out);
}
} catch (IOException ioe) {
p2.println("IOException "+ ioe);
//return;
}
}
//private void outputURI(InputStream resultStream, Writer out) {
private void outputURI(InputStream resultStream, Writer out) {
if (resultStream == null) {
// no default file
// logger.error("No File to return");
return;
}
try {
DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
// Class clazz = loader.loadClass("org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
// DocumentBuilderFactoryImpl factory = (DocumentBuilderFactoryImpl) clazz.newInstance();
// DocumentBuilder parser = factory.newDocumentBuilder();
parser.setEntityResolver(new ClassPathEntityResolver());
printXML(parser.parse(resultStream), out);
resultStream.close();
} catch (Exception e) {
// logger.error("Trying to parse the output " , e);
}
}
//private void printXML(Document document, Writer writer) throws Exception {
private void printXML(Document document, Writer writer) throws Exception {
Transformer transformer = TransformerFactory.newInstance().newTransformer();
Source source = new DOMSource(document);
Result output = new StreamResult(System.out);
transformer.transform(source, output);
// Write as XML so that entity references can be resolved.
if (writer != null) {
transformer.transform(source, new StreamResult(writer));
}
}
}
Help is highly rewarded.
Thanks
Hi
This link will guide you thro
http://help.sap.com/saphelp_nw04/helpdata/en/a8/def86ab54da5418a3575373934ca00/frameset.htm
Hope this helps , please mark points for helpful answers
regards
rajeshkr
User | Count |
---|---|
87 | |
23 | |
11 | |
9 | |
8 | |
5 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.