我正在一个在Weblogic 12c上运行ATG(Oracle Commerce)11.1并连接到Endeca实例的环境中工作.在Weblogic日志文件中我经常出现IOException
,我认为这对网站的整体稳定性产生了连锁反应.错误如下:
####<24 Nov 2015 2:47:39 PM> <Error> <HTTP> <SERVER-1> <instance-1> <[ACTIVE] ExecuteThread: '116' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1448369259872> <BEA-101019> <[ServletContext@1433232248[app:ATGProduction module:store path:null spec-version:3.0]] Servlet failed with an IOException.
java.io.IOException: An existing connection was forcibly closed by the remote host
at sun.nio.ch.SocketDispatcher.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
at sun.nio.ch.IOUtil.write(IOUtil.java:65)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:487)
at weblogic.socket.NIOSocketMuxer$NIOOutputStream.writeInternal(NIOSocketMuxer.java:1064)
at weblogic.socket.NIOSocketMuxer$NIOOutputStream.write(NIOSocketMuxer.java:983)
at weblogic.servlet.internal.ChunkOutput.writeChunkTransfer(ChunkOutput.java:622)
at weblogic.servlet.internal.ChunkOutput.writeChunks(ChunkOutput.java:587)
at weblogic.servlet.internal.ChunkOutput.flush(ChunkOutput.java:472)
at weblogic.servlet.internal.CharsetChunkOutput.flush(CharsetChunkOutput.java:301)
at weblogic.servlet.internal.ChunkOutput$3.checkForFlush(ChunkOutput.java:727)
at weblogic.servlet.internal.CharsetChunkOutput.write(CharsetChunkOutput.java:203)
at weblogic.servlet.internal.ChunkOutputWrapper.write(ChunkOutputWrapper.java:153)
at weblogic.servlet.jsp.JspWriterImpl.write(JspWriterImpl.java:275)
at jsp_servlet._tags._store.__contentitem_tag._jsp__tag2(__contentitem_tag.java:321) …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用ProductLookup Droplet在jsp中显示产品列表,如下所示.我还试图给出一个超链接,以导航到单个产品的产品详细信息页面.
<dsp:droplet name="/atg/commerce/catalog/ProductLookup">
<dsp:param param="element.id" name="id"/>
<dsp:oparam name="output"><br/>
<dsp:a href="display_product.jsp?itemId=${id}">
Product display Name:
<b><dsp:valueof param="element.displayName"/></b><br/>
Product description Name:
<dsp:valueof param="element.description"/>
</dsp:a>
</dsp:oparam>
</dsp:droplet>
Run Code Online (Sandbox Code Playgroud)
但是,我在将产品的ID传递给href
标签时遇到问题dsp:a
.生成的HTML已硬编码${id}
为display_product.jsp?itemId=${id}
.我正在获取产品列表,但URL是我面临问题的地方.如何将值element.id
传入href
属性dsp:a
?
我也试过以下,但没有成功.
1.
<dsp:a href="display_product.jsp?itemId=<%=out.print(element.id) %>">
Run Code Online (Sandbox Code Playgroud)
2.
<dsp:a href="display_product.jsp?itemId=<%=out.print(id) %>">
Run Code Online (Sandbox Code Playgroud)
3.
<dsp:getvalueof var="id" id="id" >
<dsp:a href="display_product.jsp?itemId=${id}">
Product display Name:
<b><dsp:valueof param="element.displayName"/></b><br/>
Product description Name:
<dsp:valueof param="element.description"/>
</dsp:a>
</dsp:getvalueof>
Run Code Online (Sandbox Code Playgroud) 有谁能确定此错误的根本原因吗?使用 fmt:parseDate tag ,以正确的格式解析日期。我似乎无法找到一种方法来复制导致此异常的原因。我的日期格式类似于:“2015-08-06 13:13:30.59”从数据库中提取 order.subscribedDate 值并尝试从日期对象中获取 dd 。
<fmt:parseDate value="${order.submittedDate}" pattern="yyyy-MM-dd" var="formatedDate"/>
<fmt:formatDate pattern="dd" value="${formatedDate}" var="submittedDay"/>
Run Code Online (Sandbox Code Playgroud)
在完整的堆栈跟踪下面找到
javax.servlet.jsp.JspException: In <parseDate>, a parse locale can not be established
at org.apache.taglibs.standard.tag.common.fmt.ParseDateSupport.doEndTag(ParseDateSupport.java:138)
at org.apache.jsp.tp_002dapp.emailTemplate.orderConfirmationEmail_jsp._jspx_meth_fmt_005fparseDate_005f0(orderConfirmationEmail_jsp.java:1323)
Run Code Online (Sandbox Code Playgroud)