我尝试在jsp
tomcat5.5
中运行此netbeans 6.1
程序
<%@ 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
程序和作为输入的文件保存在哪里。
如何避免此错误?
答案 0 :(得分:2)
您的Jena库(及其依赖项)应位于WEB-INF / lib(区分大小写)下,这是用于放置应用程序jar文件的标准Java EE文件夹。确保你的clases(Query,QueryFactory,ModelFactory等):
尝试使用此应用程序结构:
tomcat/webapps/ROOT
- test.jsp
- WEB-INF
- lib
- your .jar files
顺便说一句,你的“Model 1代码”似乎是转移到servlet(模型2)的一个很好的候选者,但这只是一个与JSP编译器错误无关的设计建议
答案 1 :(得分:0)
老实说,我觉得在JSP中使用scriptlet标签是一种可怕的做法。
您永远不应该使用scriptlet标记。 JSP不能用作视图层,任何业务逻辑都需要移动到控制器中,并将业务逻辑与视图逻辑分开。
答案 2 :(得分:0)
允许您的IDE尽可能地为您提供帮助。在这个特定的情况下,在Netbeans中为Jena定义一个库 - 确保至少添加二进制jar和文档,这样Netbeans就可以在编辑期间请求时显示Javadoc。将该库添加到您的项目中。
完成后,Netbeans会自动将Jena罐子部署到正确的位置,并将它们与项目打包在一起。
我也鼓励您访问the Netbeans tutorial collection,这非常有用,可以让您快速上手。
最后但并非最不重要的是,你的Netbeans已经过时了,版本7.0.1已在几周前发布。您可能希望升级 - 升级Netbeans是一个简单的过程,所有设置都是在新安装的版本中自动配置的。