Как избежать исключения при запуске JSP на сервере Tomcat? - PullRequest
0 голосов
/ 10 сентября 2011

Я пытался запустить эту 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 и файл, который передается в качестве входных данных.

Как мне избежать этой ошибки?

Ответы [ 3 ]

2 голосов
/ 10 сентября 2011

Ваши библиотеки Jena (и их зависимости) должны находиться в WEB-INF / lib (с учетом регистра), стандартной папке Java EE для размещения файлов jar вашего приложения.Убедитесь, что ваши предложения (Query, QueryFactory, ModelFactory и т. Д.):

  1. существуют в любом из jar-файлов, которые вы поместили в WEB-INF / lib.
  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 кажется хорошим кандидатом для перемещения в сервлет (Модель 2), но это всего лишь совет по проектированию, который не имеет никакого отношения к вашей ошибке компилятора JSP.

0 голосов
/ 10 сентября 2011

Позвольте вашей IDE помочь вам как можно больше.В этом конкретном случае определите библиотеку в Netbeans для Jena - обязательно добавьте двоичный файл jar и документы, чтобы Netbeans мог отображать Javadoc при запросе во время редактирования.Добавьте эту библиотеку в свой проект.

Как только вы это сделаете, Netbeans автоматически развернет банки Jena в нужном месте и упакует их с проектом.

Я также призываю вас посетить учебная коллекция Netbeans , она действительно полезна и поможет вам быстро освоиться.

И последнее, но не менее важное: ваш Netbeans ужасно стар, версия 7.0.1 была выпущена пару недель назад.Возможно, вы захотите обновить - обновление Netbeans - это простой процесс, все ваши настройки автоматически настраиваются во вновь установленной версии.

0 голосов
/ 10 сентября 2011

Честно говоря, я чувствую, что использование тегов скриптлета в JSP - ужасная практика.

Никогда не используйте теги скриплета.Предполагается, что JSP не должны использоваться в качестве уровня представления, и любая бизнес-логика должна быть перемещена в контроллер и отделить вашу бизнес-логику от вашей логики представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...