【发布时间】:2012-02-16 21:06:58
【问题描述】:
我的网站是使用 JSF 构建的。它在 weblogic 应用服务器上运行,位于 apache 网络服务器后面。该网站是一个 https 站点。
当我点击菜单上的主页链接时,https 被更改为 http 并显示以下错误消息 -
Bad Request
您的浏览器发送了一个请求,要求该服务器 无法理解。
原因:您正在对一个普通的 HTTP 启用 SSL 的服务器端口。
改为使用 HTTPS 方案访问 请输入这个网址。
我在我的 xhtml 中使用以下代码 -
<h:outputLink value="#{menuBean.homeLink}">
<f:verbatim>Home</f:verbatim>
</h:outputLink>
在我的支持 bean 中,这是我用于 homelink 的代码 -
public static final String CONTEXT_PATH = JSFUtil.getRequest().getContextPath();
private String homeLink = CONTEXT_PATH;
// getters and setters
JSF Util 有以下 sn-p -
FacesContext fc = FacesContext.getCurrentInstance();
return ((HttpServletRequest) fc.getExternalContext().getRequest());
但是菜单中的其他链接工作正常(https 标头被保留)。它们都被定义为
CONTEXT_PATH\<some path>
我也注意到这个问题,只要在 faces-config.xml 中将属性“redirect”设置为 true。
【问题讨论】:
-
您的 Apache 中是否有任何代理、重定向等可能会干扰您的请求?
-
嗨 Viccari - 谢谢。我已经发布了决议。我也认为可能是 apache 导致了这个问题。