2016-12-13 4 views
0

История вопросаВызывающие классы Groovy из Java EE + добавление к Jsp

Здравствуйте, я новичок в Java EE. Я следую this tutorial, который описывает, как вызвать класс groovy из проекта java. Причина для этого - это много уже существующего кода, который я создал, написанного в хорошем состоянии и достаточно расширяемого для того, что я хотел бы сделать.

Контекст

С Java и Groovy точки зрения, код работает. Однако, когда вы запускаете сервер tomcat и открываете index.jsp, я не могу попасть в код.

При взгляде на файл index.jsp, я вижу ошибку: cannot resolve variable для language, sentiment и message.

Дополнительная информация/Мысли

Может ли это быть что-то делать со своими зависимостями? Я использовал maven для импорта ant:ant-antlr:1.6.5, asm:asm-all:3.3.1, jstl:jstl:1.2, org.codehaus.groovy:groovy-all:2.2.1. Они неправильные? Перед добавляющих зависимостей, Java.sun.com/jsp/jstl/core не удалось найти (очевидно)

Ожидаемый выход

Откройте веб-браузер и отображается страница «Я использую Java! Это нормально .... Я был вызван от заводной, Захватывающие»

Actual Выходной

Я использую! Это

Вот код:

index.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

<html> 
<head> 
    <title>Test Sandbox</title> 
</head> 
<body> 
<p>I'm using <c:out value="${language}" />! That's <c:out value="${sentiment}" /></p> 
<p><c:out value="${message}" /></p> 
</body> 
</html> 

JavaServlet.java

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import java.io.IOException; 

public class JavaServlet extends HttpServlet { 
    @Override 
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 
     req.getSession().setAttribute("language", "java"); 
     req.getSession().setAttribute("sentiment", "ok..."); 
     resp.sendRedirect("index.jsp"); 
     req.getSession().setAttribute("message", main.message()); 
    } 
} 

web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
     version="2.5"> 

    <servlet> 
     <servlet-name>JavaServlet</servlet-name> 
     <servlet-class>JavaServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>JavaServlet</servlet-name> 
     <url-pattern>/javacallinggroovy</url-pattern> 
    </servlet-mapping> 

</web-app> 

main.groovy

class main { 

    static def message() { 
     "I was called from Groovy. Exciting, isn't it?" 
    } 
} 

ответ

0

Пожалуйста, добавьте их в вашем pom.xml

<!-- https://mvnrepository.com/artifact/javax.servlet/jsp-api --> 
<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>jsp-api</artifactId> 
    <version>2.0</version> 
</dependency> 

<!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api --> 
<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>servlet-api</artifactId> 
    <version>2.5</version> 
</dependency> 
+0

Это не сработало. Может ли Intellij иметь к этому какое-либо отношение? –

Смежные вопросы