我需要从 JSP 中输出环境变量的值。当从 Servlet 尝试时它可以正常工作,但 JSP 中的相同代码无法编译。我收到“java.util.Map$Entry 无法解析”。我的环境是jdk1.8.0_05 32位,Eclipse EE Kepler 32位,WebLogic 10.3.6。
我尝试过的Servlet:
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)
最佳答案
Holger 知道了,这在 JDK8 中不起作用,我必须在 JDK7 下运行服务器。对于遇到此问题的其他人,要切换 JDK 版本,请进入 WLDOMAIN\bin 并编辑 setDomainEnv.cmd(或 setDomainEnv.sh)并将其指向另一个 JDK 安装。
关于java - 从 JSP 输出环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23894856/