`

Web应用遇到问题记录

阅读更多

JBoss应用遇到问题记录

 

Q1. 2012-9-3 应用部署到weblogic下(Tomcat下无问题),filter执行时报错: 

java.lang.IllegalStateException: Cannot resize buffer - 299 bytes have already been written (Servlet 2.3, sec. 5.1)
at weblogic.servlet.internal.ServletResponseImpl.setBufferSize(ServletResponseImpl.java:346)
at weblogic.servlet.jsp.PageContextImpl.initialize(PageContextImpl.java:74)
at weblogic.servlet.jsp.PageContextImpl.<init>(PageContextImpl.java:110)
at weblogic.servlet.jsp.JspFactoryImpl.getPageContext(JspFactoryImpl.java:40)
at jsp_servlet.__index._jspService(__index.java:65)

原因: 调用了response.sendRedirect()之后,再调用了filterChain.doFilter(request, response)

解决 修改代码,确保 sendRedirect 之后 return 或 doFilter 之前无 sendRedirect。

see: http://blog.csdn.net/xlhybjava/article/details/1038357

 

 

Q2. 2012-10-19 Jetty下,post 1个表单数据时报错: 

java.lang.IllegalStateException: Form too large210799>200000

 

原因: Jetty对form post data的大小有限制,默认为200000bytes

解决 修改Jetty的默认限制值。

see: Web容器对form post data大小的默认限制的修改方法

 

Q3. 2012-9 关于通过 request.getParameter(...) 获取数据的注意事项:
对于POST方式提交的数据,在首次调用 request.getParameter(...) 方法时,
会触发web容器解析数据流并将解析后的parameters置入parameterMap。
方法request.getInputStream()中会改变Using stream flag值(Jetty中这个变量名为inputState, Tomcat中为usingInputStream),
而request.getParameter(...)中会根据Using stream flag值来决定是否去解析流数据,
所以若在调用request.getParameter(...)前先调用了request.getInputStream(),
会引发BUG: POST方式提交的FORM数据无法通过request.getParameter方式得到值。
一般,处理非multipart/byteranges类型FORM提交的数据时,只需要通过容器去取即可,无需额外处理。

 

Q4. 2013-5 某APP分别部署在同一个机子weblogic的2个不同域上(即webapp的url仅ip不同),在同个客户端用同一个账号先后登录这2个APP,后登录的会把前面登录的“踢掉”,而如果登录的是同个APP,反而不会出现“踢掉”。

原因: http是无状态的协议,因此web容器若要在服务端保存状态,通常的做法是往客户端浏览器cookie中写当前会话的sessionid,其默认的cookie名字是JSESSIONID。
但是cookie的domain信息是基于IP地址的不包含端口,这会导致相同IP地址不同端口的web应用cookie被共享。
因此在登录1个APP后,服务器就往用户的浏览器里写入了一个名为JSESSIONID的cookie,该APP服务端通过该id能找到相应的session,
此时用户又登录了另1个APP,因为2个APP使用了相同的IP(或主机名称),浏览器会把JSESSIONID的这个cookie发给另1个APP的服务端,
但这个服务端是找不到该id对应的session的,因此会重新生成一个sessionid并写到浏览器cookie中,这个新的sessionid会覆盖之前由前1个APP生成的sessionid。
此时当再访问前1个APP时,因为cookie中的sessionid被改变,服务端也同样找不着之前的session信息了,这导致当前登录的信息丢失。

另外这个问题似乎是和web容器有关,据网上一些文章,weblogic下存在这个问题,而tomcat下则不存在这个问题。

更多weblogic session问题:http://liuzidong.iteye.com/blog/1132219

解决 /WEB-INF/weblogic.xml 文件中增加如下配置:

<session-descriptor>
   <cookie-name>XXX-JSESSIONID</cookie-name>
</session-descriptor>

 


Problem:  Tomcat 如何设置JVM参数

Solution

Windows: 在 catalina.bat 的最前面加上 set JAVA_OPTS=-Dxx1=yy -Dxx2=yy2

Linux: 在 catalina.sh 的最前面加上 JAVA_OPTS=-Dxx1=yy -Dxx2=yy2

 

 

 

分享到:
评论

相关推荐

    C# WEB编程应用实例

    学习如何在C# Web应用中有效地处理这些问题,对于提升应用的稳定性和用户体验至关重要。 最后,为了开发和调试C# Web应用,Visual Studio是一款强大的集成开发环境(IDE),它提供了丰富的工具和功能,如代码编辑、...

    Vanilla是一个基于Openresty实现的高性能Web应用开发框架

    **Vanilla:基于Openresty的高性能Web应用开发框架** Vanilla是一个专为Web应用开发者设计的框架,它建立在Openresty的基础上,旨在简化Openresty的使用过程,让开发者能够更便捷地利用Openresty的强大性能。...

    LJ主页模板WEB应用程序主要包含Access数据库

    在WEB应用程序中,Access数据库可以通过ASP(Active Server Pages)或其他服务器端脚本技术与前端进行交互,处理数据请求,如查询、插入、更新和删除记录。 在描述中提到“主要包含Access数据库”,意味着这个WEB...

    quartz单机和WEB应用

    这篇博客“quartz单机和WEB应用”可能是探讨如何在单机环境下配置和使用Quartz,以及如何在Web应用中集成Quartz来实现分布式任务调度。 Quartz的核心概念包括Job(任务)、Trigger(触发器)和Scheduler(调度器)...

    c# winform 问题记录器

    标题中的"C# WinForm问题记录器"是一款使用C#编程语言和Windows Forms(WinForm)框架开发的应用程序,专门设计用于记录和管理个人在学习或工作中遇到的技术问题及其解决方案。这款工具可以帮助用户有效地整理和回顾...

    思普Web应用框架

    "思普Web应用框架"是基于Java Enterprise Edition (J2EE) 平台的一个综合性开发环境,它旨在简化Web应用程序的构建过程,提高开发效率,同时确保应用的稳定性和可扩展性。作为一款专业的框架,它通常包含了丰富的...

    golang开发web应用示例(v0.03)

    在博客中,你可以找到更具体的代码解释、步骤指导以及可能遇到的问题解决方案。这些内容对于初学者来说是非常宝贵的资源,可以帮助他们更好地理解和应用Go语言进行Web开发。 标签“go web”直接指出了讨论的主题,...

    Web应用链接检查工具

    Web应用链接检查工具是一种至关重要的软件,主要用于检测和确保Web应用程序中的链接有效性。这款工具的主要功能是自动遍历Web应用中的所有链接,包括内部页面、外部网站、图像、脚本和其他资源,以验证它们是否能够...

    python-web.py包

    Python的Web.py是一个轻量级、灵活且强大的Web框架,它允许开发者用Python代码直接构建Web应用程序。在尝试使用`pip install web.py`命令安装时,可能会遇到一些问题,这通常与网络连接、库依赖冲突或者版本不兼容...

    Web_Application_Stress_Tool(WAS,Web应用负载测试工具)详细说明

    WAS工具的主要功能包括模拟大量用户同时访问Web应用,记录和回放用户操作,分析服务器响应时间,以及监控系统资源使用情况。通过这些功能,它可以提供关于系统在极限条件下的表现数据,从而帮助优化系统架构和代码...

    将Power BI报表集成到Web应用程序

    需要注意的是,在实际操作过程中可能会遇到一些具体问题,例如权限设置、数据同步等问题,这些问题需要根据实际情况进行调整和解决。此外,为了确保最佳性能和用户体验,建议持续监控和优化应用程序与Power BI报表...

    将应用部署到weblogic10及oracle linux遇到的问题及解决方案

    在部署应用时,遇到了 java.lang.IllegalStateException: Cannot set web app root system property when WAR file is not expanded 问题。出现这个原因是因为部署的时候使用的是 WAR 包,WebLogic 部署应用不像 ...

    搜狐SDL流程与Web应用安全运营实践.zip

    《搜狐SDL流程与Web应用安全运营实践》是针对软件开发安全生命周期(Software Development Life Cycle, SDL)和Web应用安全运营的一份深入研究报告。该压缩包包含的唯一文件为"搜狐SDL流程与Web应用安全运营实践.pdf...

    过滤器在Java Web开发中的应用研究.pdf

    在深入分析和探讨过滤器在Java Web开发中的应用研究时,首先要了解过滤器的定义及其在Java Web...开发者在掌握了过滤器的创建、配置及使用后,可以有效地解决实际开发过程中遇到的各种问题,提高开发效率和应用性能。

    appweb 嵌入式的web服务器

    它支持基本的控制结构、函数、类和对象,使得开发者能够快速创建Web应用程序。 ### 3. CGI(Common Gateway Interface)支持 CGI是一种标准,用于让Web服务器与外部程序交互,以生成动态内容。AppWeb支持CGI,这...

    Web应用安全:apache安全.docx

    Apache是世界上最流行的Web服务器软件之一,它在Web应用安全中扮演着至关重要的角色。了解Apache的配置和安全设置是每个IT专业人员必备的技能。在Kali Linux操作系统中,Apache的主配置文件是`apache2.conf`,位于`/...

    Weblogic 8.1 + MyEclipse的配置及其Java Web应用的部署和测试.doc

    开发者需要定期检查这些日志,以解决部署或运行时遇到的问题。 以上就是MyEclipse结合Weblogic 8.1进行Java Web应用配置、部署和测试的基本流程。需要注意的是,Weblogic 8.1相对较旧,可能不支持最新的Java版本和...

Global site tag (gtag.js) - Google Analytics