2011-09-10 98 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是一個簡單的過程,所有設置都是以新安裝的版本自動配置的。

相關問題