草庐IT

SESSION_START

全部标签

java - Spring:单例/ session 范围和并发

Springbean的单例/session作用域是否要求对其所有字段的访问必须同步?通过“synchronized”关键字或使用“java.util.concurrent”包中的一些类。例如,这段代码不是线程安全的吗?(从here复制/粘贴):@Component@SessionScopedpublicclassShoppingCart{privateListitems=newArrayList();publicListgetAllItems(){returnitems;}publicvoidaddItem(Productitem){items.add(item);}}

java - org.hibernate.LazyInitializationException : could not initialize proxy - no Session, encore un fois

Foo看起来有这个:@ManyToManyprivateSetfavouritedBy;当用户有这个时:@ManyToMany(mappedBy="favouritedBy")privateSetfavourites=newHashSet();publicSetgetFavourites(){returnfavourite;}fooService有这个,在打开session时通过事务方法访问延迟加载的集合:@Transactional(readOnly=true)publicSetgetFavourites(Useruser){user=dao.get(User.class,user.

java - 如何在没有 Java Web Start 的情况下将 Java 控制台输出通过管道传输到文件?

我想将Java控制台输出(由System.out.println及其同类生成)通过管道传输到一个文件。我找到了一个很好的解决方案here启用Java跟踪,但这对我不起作用(没有日志文件显示在MacOSX或Windows的任何位置)。据我所知,这是因为我使用的是没有JavaWebStart的普通Java应用程序。那么如何使用不使用Javawebstart的Java代码来做到这一点呢?理想情况下,我想要一个不需要修改代码的解决方案。 最佳答案 如果您从命令行启动它,那么您可以使用重定向stdout和stderr到文件,如下所示:java

java - 干净的代码、无状态 session bean 和私有(private)状态

根据RobertC.Martin的干净代码,方法应该有一个小签名。最好的情况是完全没有参数的方法。相反,建议使用状态变量。这真的很有用。但是无状态sessionbean呢?这个名字有点令人困惑,因为SLSB可以有状态。您只需要进行内务处理,这样您就不会使用之前EJB调用的状态。回到干净的代码:我也喜欢在SLSB中使用实例变量。这工作正常,如果您足够小心,您不会遇到任何状态不一致的问题,因为状态在每次公共(public)方法调用时都会被覆盖。到目前为止一切顺利。但是,如果用过的bean返回到池中会怎样?它带着它的状态。根据状态的大小,这可能是真正的内存泄漏。JBoss对bean非常慷慨,

java - Hibernate Session#merge 在收到带有 ID 的实体时是否应该插入?

这似乎经常出现,但我用谷歌搜索无济于事。假设您有一个Hibernate实体User。您的数据库中有一个ID为1的User。您有两个线程在运行,A和B。它们执行以下操作:A获取用户1并关闭其SessionB获取用户1并删除它A更改用户1的字段A得到一个新的Session并合并的用户1我所有的测试都表明merge试图在数据库中找到用户1(显然不能),因此它插入了一个ID为2的新用户。另一方面,我的期望是Hibernate会发现被合并的用户不是新用户(因为它有一个ID)。它会尝试在数据库中找到用户,这会失败,因此它不会尝试插入或更新。理想情况下,它会抛出某种并发异常。请注意,我正在通过@Ve

java - Appium 错误 : A new session could not be created.(原始错误:未从 Chromedriver 获取 session 重定向)

我正在尝试通过Appium运行我的第一个测试并收到以下错误。org.openqa.selenium.SessionNotCreatedException:Anewsessioncouldnotbecreated.(Originalerror:DidnotgetsessionredirectfromChromedriver)(WARNING:Theserverdidnotprovideanystacktraceinformation)Commanddurationortimeout:4.64secondsBuildinfo:version:'2.41.0',revision:'3192d

java - 防止数据库更新期间 session 超时

背景Web应用程序调用存储过程来执行密集的数据库更新。web.xml的相关部分已更新为四个小时:240该解决方案可用的技术包括Java1.4.2、Struts2、Tomcat5.5和Apachecommons。大多数其他技术(例如jQuery)都是不允许的。问题更新大约需要一个小时才能运行,但是四小时的配置值违反了公司标准(有充分的理由)。生产中不允许四小时超时配置。问题什么将确保在执行数据库更新时请求不会超时?想法在前两种情况下,我担心生成的进程最终会被Servlet容器杀死。页面刷新将数据库更新过程作为后台任务生成。让Servlet不断刷新页面以检查是否完成。JavaScript平

java - Hibernate session 线程安全

我知道session不是线程安全的。我的第一个问题:将一个实体传递给另一个线程是否安全,对其进行一些处理,然后将其传递回原始线程并进行更新。publicclassExample1{MyDaodao;...publicvoiddoWork(){MyEntityentity=dao.getEntity();Runnablejob=newJob(entity);Threadt=newThread(job);t.run();t.join();dao.merge(entity);}}我的第二个问题:在一个线程中新建实体并将其保存在另一个线程中是否安全?publicclassExample2{My

java - 如何调试 Java Web Start 应用程序?

我有一个JavaWebStart应用程序,我通过下载定制的JNLP文件从实时站点启动。问题在于,一旦加载了JavaWebStart应用程序,应用程序就会在没有任何警告的情况下退出。我知道证书没问题,因为当我从Java设置中启用“显示来自服务器的站点证书,即使它是有效的”选项时,它会相应地显示一条消息。我已经尝试从Java设置(“启用跟踪”、“启用日志记录”、“显示小程序生命周期异常”)和Java控制台启用所有调试设置,但没有成功缓存问题。有更多JavaWebStart开发/调试经验的人可以提供任何提示吗? 最佳答案 您可以使用jav

java - 如何使 Tomcat 中的所有 session 过期?

我想让Tomcat中的所有session都过期。我们在Fitnesse下测试我们的产品,一些session仍然存在,session结束导致测试之间存在依赖性。我用下面的代码手工完成,但有些session仍然存在(我可以用http://localhost:8080/manager/html/listurl检查它)publicstaticvoidexpireAllSessions(){String[]applications={"a","b","c","d","e"};for(Stringapplication:applications){try{expireAllSessions(app