测试工程(netbeans8.1,NetBeans自带glassfish4.1,JDK7)
标题中的“测试工程(netbeans8.1,NetBeans自带glassfish4.1,JDK7)”指的是一项基于NetBeans 8.1集成开发环境、使用GlassFish 4.1应用服务器,并且依赖于Java Development Kit 7(JDK7)的软件测试项目。在这样的环境下,开发者通常会进行Web应用的开发和测试,尤其是Java Enterprise Edition (Java EE) 应用程序,因为NetBeans和GlassFish都是Java EE开发和部署的重要工具。 描述中提到的问题在于“输出老是1,不能递增+1”,这可能涉及到有状态会话Bean(Stateful Session Bean,SFSB)的使用。在Java EE中,SFSB被设计用来维护与特定客户端会话相关联的状态信息。如果一个SFSB的方法应该增加一个计数器但每次调用时都返回1,那可能表明会话状态没有正确地保持或更新。这可能是由于以下原因: 1. **序列化问题**:SFSB在集群环境中需要被序列化和反序列化,以在不同服务器之间传递。如果实现的`equals()`和`hashCode()`方法不正确,或者没有正确的`@javax.ejb.Stateful`注解,可能会导致状态丢失。 2. **会话超时**:GlassFish服务器可能在一段时间无活动后销毁会话,从而清空SFSB的状态。检查服务器配置,确保会话超时时间设置得当。 3. **错误的实例管理**:SFSB应该是单例的,每个客户端会话对应一个实例。如果多个客户端共享了同一个SFSB实例,会导致状态混乱。 4. **错误的事务管理**:Java EE的事务管理可能影响到SFSB的状态保存。确保事务配置正确,且在需要时进行提交。 5. **代码逻辑错误**:检查增加计数器的代码,可能存在逻辑错误或者并发问题,例如没有正确使用`@Lock(WRITE)`来确保同步访问。 为了更好地诊断和解决这个问题,可以查看相关的日志文件,检查是否有错误消息。同时,分析代码中的SFSB实现,确认是否遵循了正确的设计模式和最佳实践。如果“cheshi”文件夹包含源代码或日志信息,那么通过深入分析这些文件,可能能找到问题的根源。 在进行调试时,可以尝试创建一个简单的示例来重现问题,以便更轻松地定位和修复。此外,确保所有使用的库和框架都是兼容的,并且已经更新至最新版本,因为已知的bug或兼容性问题可能导致此类问题。 解决这个问题需要理解Java EE架构、SFSB的工作原理以及NetBeans和GlassFish的配置细节。通过系统地排查和调试,应该能够找到并修复这个状态保持问题。
- 1
- mengmengvip2018-04-08谢谢分享!
- 粉丝: 5
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助