我正在尝试使用Java EE 7,我已经构建了一个示例应用程序,可以在https://github.com/kenparker/moviplex7.git找到。
在此过程中,我了解到主要是因为GlassFish 4安装问题导致工作有多困难。
当前错误日志如下:
WARNING: JSF1063: WARNUNG! Der nicht serialisierbare Attributswert wird in HttpSession festgelegt (Schlüssel: 7b6d8a31fe1f98a383c3673cc569:0_flowStack, Wertklasse: com.sun.faces.flow.FlowHandlerImpl$FlowDeque).
FATAL: JSF1073: javax.el.ELException erfasst während Verarbeitung von RENDER_RESPONSE 6 : UIComponent-ClientId=, Message=/client/movies.xhtml @17,78 items="#{movieClientBean.movies}": javax.ws.rs.ProcessingException: java.net.MalformedURLException: Stream handler unavailable due to: For input string: "0:0:0:0:0:0:1:8080"
FATAL: /client/movies.xhtml @17,78 items="#{movieClientBean.movies}": javax.ws.rs.ProcessingException: java.net.MalformedURLException: Stream handler unavailable due to: For input string: "0:0:0:0:0:0:1:8080"
javax.el.ELException: /client/movies.xhtml @17,78 items="#{movieClientBean.movies}": javax.ws.rs.ProcessingException: java.net.MalformedURLException: Stream handler unavailable due to: For input string: "0:0:0:0:0:0:1:8080"
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114)
at com.sun.faces.facelets.tag.jstl.core.ForEachHandler.apply(ForEachHandler.java:161)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:190)
奇怪的是,我没有在Mac Book上运行相同的应用程序时遇到这个问题,所以我的桌面上的GlassFish 4安装与Mac Book上的安装之间必然存在一些差异。
两者似乎都在" GlassFish Server开源版4.0(版本89)"
"更新工具"没有显示开放更新。
如何找出两个安装之间的差异?
我也在网上搜索并发现了这个链接。 https://java.net/jira/browse/JAVASERVERFACES-3084?page=com.atlassian.jira.plugin.system.issuetabpanels%3Aworklog-tabpanel
我真的不明白是什么解决方案。
任何想法我如何着手解决问题?
答案 0 :(得分:3)
问题与GlassFish无关。
Stream handler unavailable due to: For input string: "0:0:0:0:0:0:1:8080"
错误消息的这一部分显示某些内容正在尝试使用 IPv6 地址。我想类javax.ws.rs.client.ClientBuilder
无法正确处理。
如果您在台式计算机上启用了双栈网络(IPv4和IPv6),则httpServletRequest.getLocalName()
似乎首先返回 IPv6 地址(0:0:0:0:0:0:1
)。< / p>
可能有一个解决方案如何在您的操作系统中更改该行为,但还有另一种获取IP的方法:
httpServletRequest.getServerName()
或
FacesContext.getCurrentInstance().getExternalContext().getRequestServerName()
在httpServletRequest.getLocalName()
init()
方法中使用{而不是MovieClientBean
。它应该以IPv4格式返回地址并使其工作。
另见: