首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Servlet和XQuery

Servlet和XQuery
EN

Stack Overflow用户
提问于 2014-08-22 23:15:35
回答 1查看 238关注 0票数 1

我编写了一个java类在XML数据库上运行一个简单的XQuery (使用Saxon xqj)。查询在这个类中运行得很好。但是我想从servlet访问这个类。问题是servlet找不到java类,当我运行servlet时它会得到java.lang.ClassNotFoundException: javax.xml.xquery.XQException。有什么想法吗?

Java类就是这样简单的:

代码语言:javascript
复制
import java.util.Properties;
import javax.xml.xquery.XQConnection;
import javax.xml.xquery.XQException;
import javax.xml.xquery.XQPreparedExpression;
import javax.xml.xquery.XQResultSequence;
import javax.xml.xquery.XQSequence;
import javax.xml.namespace.QName;
import net.sf.saxon.xqj.SaxonXQDataSource;
import org.xml.sax.SAXException;

public class XMLClass {
public static String xmldata() throws XQException{
    XQConnection con;
    String output = null;
    final String sep = System.getProperty("line.separator");
    String fileName= "cd_book.xml";
        con = new SaxonXQDataSource().getConnection();
        System.out.println("Connected");
    String queryString = "declare variable $docName as xs:string external;"+sep +
   "for $x in doc($docName)/*" +
   " return $x";
   XQPreparedExpression expr = con.prepareExpression(queryString);
   expr.bindObject(new QName("docName"), fileName, null);
   XQResultSequence rs = expr.executeQuery();
   String result =rs.getSequenceAsString(new Properties());
   return result;

    }
   }

Servlet是:

代码语言:javascript
复制
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.xquery.XQException;
public class ServletXML extends HttpServlet {
private static final long serialVersionUID = 1L;

public ServletXML() {
    super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {

try {
        XMLClass.xmldata();
        } catch (XQException e) {
            e.printStackTrace()
 }

}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
EN

回答 1

Stack Overflow用户

发布于 2014-08-23 00:00:58

那么类路径中可能缺少xml类。你是如何编译和运行这个程序的?

此外,最好将这两个包放入一个或多个包中,如果类位于不同的包中,则从servlet导入类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25450359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档