Java 从JSP输出环境变量
我需要从JSP中输出环境变量的值。从Servlet尝试时,它可以正常工作,但JSP中的相同代码无法编译。无法解析java.util.Map$条目。我的环境是jdk1.8.0_05 32位、Eclipse EE Kepler 32位、WebLogic 10.3.6 我试过:Java 从JSP输出环境变量,java,eclipse,jsp,java-8,Java,Eclipse,Jsp,Java 8,我需要从JSP中输出环境变量的值。从Servlet尝试时,它可以正常工作,但JSP中的相同代码无法编译。无法解析java.util.Map$条目。我的环境是jdk1.8.0_05 32位、Eclipse EE Kepler 32位、WebLogic 10.3.6 我试过: out.append(System.getenv("VOLED_BASE_HREF")) response.setStatus(HttpServletResponse.SC_OK); response.getWriter().
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>
Holger有,这在JDK8中不起作用,我必须在JDK7下运行服务器。对于遇到此问题的任何其他人,要切换JDK版本,请进入WLDOMAIN\bin并编辑setDomainEnv.cmd或setDomainEnv.sh,并将其指向另一个JDK安装。您是否尝试为java.util.Map$条目添加显式JSP导入?您是否忘记在JSP中导入?这与导入无关;Map$Entry是一个完全限定的类名。无论出于何种原因,WebLogic服务器似乎根本不知道它,也许它的执行JRE不好,或者以不同的方式引用内部类?你能试试更新的版本吗?WebLogic不支持Java 8。最有可能的情况是,接口Map.Entry在那里,但由于类文件格式较新,JSP编译器无法读取它。请注意,Map.Entry现在有静态方法,这是旧版本Java不支持的功能。您是否尝试过使用JDK 7或其他JDK 8发行版执行此功能?
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)