如何避免在tomcat服务器上运行jsp时出现异常



我尝试在netbeans 6.1中运行tomcat5.5中的jsp程序

<%@ page import="java.io.*" %>
<%@ page import="java.util.*" session="true"%>
<%@ page import="com.hp.hpl.jena.rdf.model.*"%>
<%@ page import="com.hp.hpl.jena.query.*"%>
<%
         try
          {
             String inputFile="C:\Users\Admin\Documents\NetBeansProjects\finalview\resumenew.rdf";
         InputStream in = new BufferedInputStream(new FileInputStream(new File(inputFile)));
         Model model = ModelFactory.createMemModelMaker().createModel("");
         model.read(in,null) ;
          String queryString =
                                  "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> " +
                                  "PREFIX foaf: <http://www.xmlns.com/foaf/0.1> " +
                                    "SELECT ?name  ?phone WHERE { ?person foaf:name ?name . ?person foaf:phone ?phone }";

                       Query query1 = QueryFactory.create(queryString);
                       QueryExecution qe = QueryExecutionFactory.create(query1,model);
                       ResultSet results = qe.execSelect();
                       ResultSetFormatter.out(System.out, results, query1);
                       qe.close();
                       }catch(Exception e){}
%>

当我运行程序

时,我得到以下异常
exception
org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred at line: 6 in the jsp file: /test.jsp
Generated servlet error:
Model cannot be resolved to a type
An error occurred at line: 6 in the jsp file: /test.jsp
Generated servlet error:
ModelFactory cannot be resolved
An error occurred at line: 6 in the jsp file: /test.jsp
Generated servlet error:
Query cannot be resolved to a type
An error occurred at line: 6 in the jsp file: /test.jsp
Generated servlet error:
QueryFactory cannot be resolved
An error occurred at line: 6 in the jsp file: /test.jsp
Generated servlet error:
QueryExecution cannot be resolved to a type
An error occurred at line: 6 in the jsp file: /test.jsp
Generated servlet error:
QueryExecutionFactory cannot be resolved
An error occurred at line: 6 in the jsp file: /test.jsp
Generated servlet error:
ResultSet cannot be resolved to a type
An error occurred at line: 6 in the jsp file: /test.jsp
Generated servlet error:
ResultSetFormatter cannot be resolved

    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)c

你能告诉我,我应该把我的jsp程序和文件作为输入给它。

Jena库(及其依赖项)应该位于WEB-INF/lib(区分大小写)下,这是放置应用程序jar文件的标准Java EE文件夹。确保您的类(Query、QueryFactory、ModelFactory等):

  1. 存在于你放在WEB-INF/lib下的任何jar文件中。
  2. 属于com.hp.hp .jena.rdf.model。*或com.hp.hpl.jena.query.*

尝试使用这个应用程序结构:

tomcat/webapps/ROOT
 - test.jsp
 - WEB-INF
    - lib
        - your .jar files
顺便说一下,您的"模型1代码"似乎是移动到servlet(模型2)的良好候选者,但这只是一个设计建议,与JSP编译器错误无关。

老实说,我觉得在jsp中使用scriptlet标签是一种可怕的做法。

永远不要使用scriptlet标签。jsp不打算用作视图层,任何业务逻辑都需要移动到控制器中,并将业务逻辑与视图逻辑分开。

让您的IDE尽可能地帮助您。在这个特定的例子中,在Netbeans中为Jena定义一个库——确保至少添加二进制jar和文档,这样Netbeans就可以在编辑期间请求时显示Javadoc。将该库添加到您的项目中。

完成后,Netbeans将自动将Jena jar部署到正确的位置,并将它们打包到项目中。

我也鼓励你访问Netbeans教程集合,它真的很有帮助,会让你快速上手。

最后但并非最不重要的是,你的Netbeans是可怕的旧,版本7.0.1已经发布了几个星期前。您可能想要升级-升级Netbeans是一个简单的过程,您的所有设置都会自动配置在新安装的版本中。

相关内容

  • 没有找到相关文章

最新更新