the company house uk xml gateway java.lang.nullpointerexception



I am working with the xml gateway of the company house UK and specifically on the name search API, i am almost done but stuck at one point since days. I tried almost every solution but did not get the correct output. As per some rules by the company house UK, the similar names can not be registered by anyone. So my logic is when any similar name is registered, my system will state that the entered name is not available. but when some name is available and there is not any similar name then the program throws null pointer exception. i don't understand what is wrong. my mind is stopped working on this program now. please help



<%@page import="java.io.InputStreamReader"%>
<%@page import="java.io.BufferedReader"%>
<%@page import="java.io.ByteArrayInputStream"%>
<%@page import="javax.xml.transform.Result"%>
<%@page import="javax.xml.transform.Source"%>
<%@page import="java.io.ByteArrayOutputStream"%>
<%@page import="java.io.InputStream"%>
<%@page import="org.xml.sax.SAXException"%>
<%@page import="java.io.IOException"%>
<%@page import="java.util.List"%>
<%@page import="java.lang.*"%>
<%@page import="Classes.MyHandler"%>
<%@page import="javax.xml.parsers.SAXParser"%>
<%@page import="javax.xml.parsers.SAXParserFactory"%>
<%@page import="Classes.GovTalkMessage"%>
<%@page import="javax.xml.bind.JAXBException"%>
<%@page import="javax.xml.bind.Unmarshaller"%>
<%@page import="javax.xml.bind.JAXBContext"%>
<%@page import="Servlets.Company"%>
<%@page import="org.xml.sax.InputSource"%>
<%@page import="java.io.StringReader"%>
<%@page import="org.apache.commons.httpclient.HttpClient"%>
<%@page import="org.apache.commons.httpclient.methods.InputStreamRequestEntity"%>
<%@page import="java.io.FileInputStream"%>
<%@page import="org.apache.commons.httpclient.methods.PostMethod"%>
<%@page import="javax.xml.transform.TransformerException"%>
<%@page import="javax.xml.parsers.ParserConfigurationException"%>
<%@page import="java.io.File"%>
<%@page import="javax.xml.transform.stream.StreamResult"%>
<%@page import="javax.xml.transform.dom.DOMSource"%>
<%@page import="javax.xml.transform.Transformer"%>
<%@page import="javax.xml.transform.TransformerFactory"%>
<%@page import="org.w3c.dom.Attr"%>
<%@page import="org.w3c.dom.Element"%>
<%@page import="org.w3c.dom.Document"%>
<%@page import="javax.xml.parsers.DocumentBuilder"%>
<%@page import="javax.xml.parsers.DocumentBuilderFactory"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
try {

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

// GovTalkMessage elements
Document doc = docBuilder.newDocument();
Element rootElement = doc.createElement("GovTalkMessage");
doc.appendChild(rootElement);

Attr xmlns = doc.createAttribute("xmlns");
xmlns.setValue("http://ift.tt/WmEw3h");
rootElement.setAttributeNode(xmlns);

Attr xmlnsdsig = doc.createAttribute("xmlns:dsig");
xmlnsdsig.setValue("http://ift.tt/uq6naF");
rootElement.setAttributeNode(xmlnsdsig);

Attr xmlnsgt = doc.createAttribute("xmlns:gt");
xmlnsgt.setValue("http://ift.tt/WmEw3j");
rootElement.setAttributeNode(xmlnsgt);

Attr xmlnsxsi = doc.createAttribute("xmlns:xsi");
xmlnsxsi.setValue("http://ift.tt/ra1lAU");
rootElement.setAttributeNode(xmlnsxsi);

Attr xsischemaLocation = doc.createAttribute("xsi:schemaLocation");
xsischemaLocation.setValue("http://ift.tt/WmEw3h http://ift.tt/Uf6snI");
rootElement.setAttributeNode(xsischemaLocation);

// EnvelopeVersion elements
Element EnvelopeVersion = doc.createElement("EnvelopeVersion");
EnvelopeVersion.appendChild(doc.createTextNode("1.0"));
rootElement.appendChild(EnvelopeVersion);

// Header elements
Element Header = doc.createElement("Header");
rootElement.appendChild(Header);

Element MessageDetails = doc.createElement("MessageDetails");
Header.appendChild(MessageDetails);

Element Class = doc.createElement("Class");
Class.appendChild(doc.createTextNode("NameSearch"));
MessageDetails.appendChild(Class);

Element Qualifier = doc.createElement("Qualifier");
Qualifier.appendChild(doc.createTextNode("request"));
MessageDetails.appendChild(Qualifier);

Element TransactionID = doc.createElement("TransactionID");
TransactionID.appendChild(doc.createTextNode("1"));
MessageDetails.appendChild(TransactionID);

Element SenderDetails = doc.createElement("SenderDetails");
Header.appendChild(SenderDetails);

Element IDAuthentication = doc.createElement("IDAuthentication");
SenderDetails.appendChild(IDAuthentication);

Element SenderID = doc.createElement("SenderID");
SenderID.appendChild(doc.createTextNode("XMLGatewayTestUserID"));
IDAuthentication.appendChild(SenderID);

Element Authentication = doc.createElement("Authentication");
IDAuthentication.appendChild(Authentication);

Element Method = doc.createElement("Method");
Method.appendChild(doc.createTextNode("MD5SIGN"));
Authentication.appendChild(Method);

Element Value = doc.createElement("Value");
Value.appendChild(doc.createTextNode("77bf50b83775d3814da3e8e775988298"));
Authentication.appendChild(Value);

Element EmailAddress = doc.createElement("EmailAddress");
SenderDetails.appendChild(EmailAddress);

// GovTalkDetails elements
Element GovTalkDetails = doc.createElement("GovTalkDetails");
rootElement.appendChild(GovTalkDetails);

Element Keys = doc.createElement("Keys");
GovTalkDetails.appendChild(Keys);

// Body elements
Element Body = doc.createElement("Body");
rootElement.appendChild(Body);

Element NameSearchRequest = doc.createElement("NameSearchRequest");
Body.appendChild(NameSearchRequest);

Attr xmlns_nsr = doc.createAttribute("xmlns");
xmlns_nsr.setValue("http://ift.tt/1na2M2c");
NameSearchRequest.setAttributeNode(xmlns_nsr);

Attr xmlnsxsi_nsr = doc.createAttribute("xmlns:xsi");
xmlnsxsi_nsr.setValue("http://ift.tt/ra1lAU");
NameSearchRequest.setAttributeNode(xmlnsxsi_nsr);

Attr xsischemaLocation_nsr = doc.createAttribute("xsi:schemaLocation");
xsischemaLocation_nsr.setValue("http://ift.tt/X6tNcR");
NameSearchRequest.setAttributeNode(xsischemaLocation_nsr);

Element CompanyName = doc.createElement("CompanyName");
CompanyName.appendChild(doc.createTextNode(request.getParameter("companyname")));
NameSearchRequest.appendChild(CompanyName);

Element DataSet = doc.createElement("DataSet");
DataSet.appendChild(doc.createTextNode("LIVE"));
NameSearchRequest.appendChild(DataSet);

Element SameAs = doc.createElement("SameAs");
SameAs.appendChild(doc.createTextNode("1"));
NameSearchRequest.appendChild(SameAs);

Element SearchRows = doc.createElement("SearchRows");
SearchRows.appendChild(doc.createTextNode("10"));
NameSearchRequest.appendChild(SearchRows);

// write the content into xml file
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("file2.xml"));

// Output to console for testing
// StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);

String strURL = "http://ift.tt/1cNHAZT";
String strXMLFilename = "file2.xml";
File input = new File(strXMLFilename);
PostMethod post = new PostMethod(strURL);
post.setRequestEntity(new InputStreamRequestEntity(new FileInputStream(input), input.length()));
post.setRequestHeader("Content-type", "text/xml; charset=ISO-8859-1");
HttpClient httpclient = new HttpClient();
try {
int result1 = httpclient.executeMethod(post);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
try {
builder = factory.newDocumentBuilder();

BufferedReader br = new BufferedReader(new InputStreamReader(post.getResponseBodyAsStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}

Document document = builder.parse(new InputSource(new StringReader(sb.toString())));
br.close();

DOMSource source1 = new DOMSource(document);
StreamResult result3 = new StreamResult(new File("output.xml"));
transformer.transform(source1, result3);
} catch (Exception e) {
e.printStackTrace();
}
SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
try {
SAXParser saxParser = saxParserFactory.newSAXParser();
MyHandler handler = new MyHandler();
saxParser.parse(new File("output.xml"), handler);
List<GovTalkMessage> empList = handler.getEmpList();

boolean flag1 = false;
boolean flag2 = false;
boolean flag3 = false;
boolean flag4 = false;
boolean flag5 = false;
boolean flag6 = false;
boolean flag7 = false;

String companyname = request.getParameter("companyname");
String companynamecase = companyname.toLowerCase();
String companyname1 = "";

if(!empList.isEmpty()) {
session.setAttribute("companyname", (companyname1 + "Limited"));
response.sendRedirect("notavailable.jsp");
}

if (companynamecase.contains(" ltd")) {
companyname1 = companynamecase.replaceAll(" ltd", "");
}
else if (companynamecase.contains(" uk limited")) {
companyname1 = companynamecase.replaceAll(" uk limited", "");
}
else if (companynamecase.contains(" public limited company")) {
companyname1 = companynamecase.replaceAll(" public limited company", "");
}
else if (companynamecase.contains(" limited")) {
companyname1 = companynamecase.replaceAll(" limited", "");
}
else if (companynamecase.contains(" international ltd")) {
companyname1 = companynamecase.replaceAll(" international ltd", "");
}
else if (companynamecase.contains(" plc")) {
companyname1 = companynamecase.replaceAll(" plc", "");
}
else if (companynamecase.contains(" llp")) {
companyname1 = companynamecase.replaceAll(" llp", "");
}
else {
companyname1 = companynamecase;
}
String suffix1 = " Ltd";
String suffix2 = " Limited";
String suffix3 = " UK Limited";
String suffix4 = " International Ltd";
String suffix5 = " Public Limited Company";
String suffix6 = " PLC";
String suffix7 = " LLP";

for (GovTalkMessage emp : empList) {
session.setAttribute("companylist", empList);
if (emp.getCompanyName().equalsIgnoreCase(companyname1 + suffix1)) {
flag1 = true;
}
if (emp.getCompanyName().equalsIgnoreCase(companyname1 + suffix2)) {
flag2 = true;
}
if (emp.getCompanyName().equalsIgnoreCase(companyname1 + suffix3)) {
flag3 = true;
}
if (emp.getCompanyName().equalsIgnoreCase(companyname1 + suffix4)) {
flag4 = true;
}
if (emp.getCompanyName().equalsIgnoreCase(companyname1 + suffix5)) {
flag5 = true;
}
if (emp.getCompanyName().equalsIgnoreCase(companyname1 + suffix6)) {
flag6 = true;
}
if (emp.getCompanyName().equalsIgnoreCase(companyname1 + suffix7)) {
flag7 = true;
}
out.println(emp);
out.println("<br />");
}
if (flag1 == true) {
session.setAttribute("companyname", (companyname1 + suffix1));
response.sendRedirect("notavailable.jsp");
} else if (flag2 == true) {
session.setAttribute("companyname", (companyname1 + suffix2));
response.sendRedirect("notavailable.jsp");
} else if (flag3 == true) {
session.setAttribute("companyname", (companyname1 + suffix3));
response.sendRedirect("notavailable.jsp");
} else if (flag4 == true) {
session.setAttribute("companyname", (companyname1 + suffix4));
response.sendRedirect("notavailable.jsp");
} else if (flag5 == true) {
session.setAttribute("companyname", (companyname1 + suffix5));
response.sendRedirect("notavailable.jsp");
} else if (flag6 == true) {
session.setAttribute("companyname", (companyname1 + suffix6));
response.sendRedirect("notavailable.jsp");
} else if (flag7 == true) {
session.setAttribute("companyname", (companyname1 + suffix7));
response.sendRedirect("notavailable.jsp");
} else {
session.setAttribute("companyname", (companyname1 + suffix2));
response.sendRedirect("step2.jsp");
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

} catch (Exception e) {
e.printStackTrace();

} finally {
post.releaseConnection();
}

} catch (ParserConfigurationException pce) {
pce.printStackTrace();
} catch (TransformerException tfe) {
tfe.printStackTrace();
}
%>
</body>
</html>


Glassfish tracereport



SEVERE: java.lang.NullPointerException
at org.apache.jsp.createxml_jsp._jspService(createxml_jsp.java:310)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
at java.lang.Thread.run(Thread.java:744)

No comments:

Post a Comment