2011-09-10 69 views
0

我试着在netbeans 6.1如何避免在tomcat服务器上运行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){} 
%> 

运行在tomcat5.5jsp计划,我得到以下异常,当我运行程序

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程序和作为输入给它的文件。

我该如何避免这个错误?

+0

您是否将类包含在类路径中? –

+0

如何包含它?请打电话给我?这里的课程是什么意思? – sheba

回答

2

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

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

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

tomcat/webapps/ROOT 
- test.jsp 
- WEB-INF 
    - lib 
     - your .jar files 

通过顺便说一句,您的“Model 1代码”似乎是一个很好的候选者,可以转移到servlet(模型2),但这只是一个设计建议,与您的JSP编译器错误无关。

+0

我在WEB-INF/lib下创建了JEE文件夹,并将我的程序所需的所有jar放入它中,但我得到了相同的异常。 – sheba

+0

这是放置我的jsp文件的正确路径吗? Apache软件基础 - > tomcat 5.5 - > webapps - > ROOT - >我的jsp文件和一个名为JEE的文件夹,包含我的jar文件。 – sheba

+0

不,Tomcat不明白名为“JEE”的文件夹的含义。你应该把它称为WEB-INF。我编辑了我的答案,以反映您应遵循的目录结构。 –

0

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

你不应该使用scriptlet标签。 JSP不能用作视图层,任何业务逻辑都需要移入控制器,并将业务逻辑与视图逻辑分开。

0

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

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

我还鼓励您访问the Netbeans tutorial collection,这真的很有帮助,并且可以帮助您快速上手。

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

相关问题