我在Tomcat服务器上部署了一个servlet Java,该服务器使用放置在现有数据库上的xml文件。但是我知道为该servlet指定的URL localhost tomcat中有一个空页面,知道我已将eXist-db的所有jar都放置在Tomcat服务器的lib中。
这是我的servlet
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.OutputKeys;
import org.exist.storage.serializers.EXistOutputKeys;
import org.exist.xmldb.EXistResource;
import org.xmldb.api.DatabaseManager;
import org.xmldb.api.base.Collection;
import org.xmldb.api.base.Database;
import org.xmldb.api.modules.XMLResource;
import javax.xml.transform.sax.*;
public class poste extends HttpServlet {
protected static final String driver = "org.exist.xmldb.DatabaseImpl";
protected static final String URI = "xmldb:exist://localhost:8080/exist/xmlrpc";
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
try {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
ServletContext context = getServletContext();
InputStream xsl = (InputStream)(context.getResourceAsStream("/WEB-INF/poste.xsl"));
String collection = "/db/projet";
Class cl = Class.forName(driver);
Database database = (Database) cl.newInstance();
database.setProperty("ssl-enable", "false");
DatabaseManager.registerDatabase(database);
Collection col = DatabaseManager.getCollection(URI +
collection,"admin","admin");
col.setProperty(OutputKeys.INDENT, "yes");
col.setProperty(EXistOutputKeys.EXPAND_XINCLUDES, "no");
col.setProperty(EXistOutputKeys.PROCESS_XSL_PI, "yes");
XMLResource res = (XMLResource)col.getResource("poste.xml");
Source stylesheet = new StreamSource(xsl);
SAXTransformerFactory stf = (SAXTransformerFactory)
TransformerFactory.newInstance();
TransformerHandler handler = stf.newTransformerHandler(stylesheet);
Result result = new StreamResult(out);
handler.setResult(result);
res.getContentAsSAX(handler);
out.close();
}catch(Exception e){
e.printStackTrace();
}
}}
我该如何解决我的问题?