Мне нужно вывести значение переменной среды из JSP. Он работает правильно при попытке с сервлета, но тот же код в JSP не скомпилируется. Я получаю "java.util.Map $ Entry не может быть разрешен". Моя среда - jdk1.8.0_05 32-разрядная, Eclipse EE Kepler 32-bit, WebLogic 10.3.6.
Сервлет я попробовал:
out.append(System.getenv("VOLED_BASE_HREF"))
response.setStatus(HttpServletResponse.SC_OK);
response.getWriter().print(out.toString());
И это прекрасно работает. Но когда я пробую это в простой JSP:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
out.print(System.getenv("VOLED_BASE_HREF"));
%>
</body>
</html>
Я получил:
weblogic.servlet.jsp.CompilationException: Failed to compile JSP /index.jsp
index.jsp:11:12: The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files
out.print(System.getenv("VOLED_BASE_HREF"));
^-----------------------------^
at weblogic.servlet.jsp.JavelinxJSPStub.reportCompilationErrorIfNeccessary(JavelinxJSPStub.java:226)
at weblogic.servlet.jsp.JavelinxJSPStub.compilePage(JavelinxJSPStub.java:162)
at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:256)
at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:216)
Хольгер имел это, это не работает в JDK8, я должен был запустить сервер под JDK7. Для всех, кто сталкивается с этим, для переключения версий JDK перейдите в WLDOMAIN\bin и отредактируйте setDomainEnv.cmd (или setDomainEnv.sh) и укажите его на другую установку JDK.
<%@ page import="java.util.*"%>
В JSP?