草庐IT

java - Weblogic BEA-000449 : Closing socket as no data read from it during the configured idle timeout of 5 secs

我已经开始在我的weblogic10日志文件中看到这条消息。我正在运行一个大约有40-350个并发用户的应用程序。我的问题是这个错误的真正含义是什么它将如何影响用户(如果有的话)可能是什么原因造成的谢谢 最佳答案 WhatdoesthiserrorreallymeanWeblogic正在关闭用于与其中一个服务器客户端通信的套接字,因为超过五秒没有发送数据,这是您为Weblogic的空闲超时配置的值。Whatcouldbecausingthis客户端程序连接到您的服务器,发送一些数据,然后1)不关闭连接或2)消失。

java - 在 JBoss AS 6 中监听登录事件

我有一个在JBossAS6中运行的应用程序。身份验证正在使用“FORM”身份验证方法进行,并且用户正在正确登录。我希望能够在用户成功登录时调用一段自定义的静态代码。不幸的是,我找不到任何将在成功登录时执行代码的监听器、Hook或回调。HttpSessionListener确实有一个“sessionCreated”事件,但一旦用户访问任何页面,即使他们没有成功登录,也会立即调用它。这意味着即使查看登录表单也会触发事件。谁能给我指点JBossAS6(或同等版本)的一些文档,其中说明如何在用户首次成功登录时运行自定义代码?提前致谢。 最佳答案

java - Maven if-else 类行为

我在maven中有一个多模块项目,其他项目需要根据环境使用jar。我们有4个环境1.开发2.UAT3.质量保证4.产品有一个项目希望对所有三个环境(即dev、uat、QA)使用projectname-dev.jar,对PROD使用projectname-prod.jar。我在google上搜索了类似if-else逻辑的东西,我可以在maven配置文件中使用它。我仍然可以为这个特定项目创建一个新属性,并在它投入生产时将其更改为“-prod”,但这是我不想添加的额外开销。是否有任何插件可以帮助我完成上述工作,而无需增加任何类型的手动开销。谢谢 最佳答案

java - 为什么我们必须使用 "while"来检查竞争条件而不是 "if"

我在《Thinkinginjava》中读到如下代码。synchronized(obj){while(condition_not_matched){obj.wait();}//continuedosomething();}我的看法:使用“if”就可以,因为“wait”意味着它必须得到obj的锁监视器,并且这里只能执行一个线程。(1)为什么这里用“while(条件)”而不是“if”?(2)执行“obj.wait()”时发生了什么?当前线程是否释放了“obj”的锁?(3)当另一个线程执行“obj.notify()”时,前一个线程发生了什么(它是否重新获取了obj的锁?如果是,它必须是cond

java - jsonObject as string - 搜索正则表达式以删除密码字段

我有一个json字符串,它的内容中某处有一个像这样的字符串:"password":"password2"这可以在json字符串中的任何地方,所以不要假设它在第一层。它甚至可以在jsonArray中。所以我需要搜索整个字符串并删除这个字段,或者将它的值设置为null。所以我需要能够搜索整个字符串并替换密码。例如,字符串可能如下所示:我只是想用它来记录。我的问题是,我想删除与第三方共享的密码值。我需要在java中使用正则表达式来搜索此字符串并将密码值替换为空字符串,或者我什至可以对密码进行md5。如果不存在密码字符串,它一定不会失败。我怎样才能做到这一点?所以要清楚,给定任何输入作为字符串

java - 将 if-else 修改为策略模式

我在java中有以下if-else分支。if(str.equals("a")){A;}elseif(str.equals("b")){B;}elseif(str.equals("c")){C;}elseif(str.length==5){D;}else{E;}如何将这段代码修改成策略模式? 最佳答案 这里是一个使用工厂的策略模式的例子:publicinterfaceStrategy{publicObject[]execute(Object[]args);}publicclassStrategyFactory{publicenumNa

java - Find out if the calling thread is the SWT UI thread - 确定调用线程

我有这个模块用于应用程序COMM的多个部分(在SWTUi端、后端等)。这个模块有一个sendMessage方法,我想在其中添加一个例程来确定调用线程(只是为了在UI中使用它)是SWTUI线程。并警告程序员,他正在尝试从UI线程执行耗时的操作……这很糟糕:)当然,我想通过不在UI模块(来自COMM)上添加任何依赖项来做到这一点。如何确定调用线程是否是SWTUI线程?谢谢,米尔恰 最佳答案 您可以调用Display.getThread()来获取应用程序的当前UI线程。如果您不想依赖SWTUI,那么您将不得不使用反射。例如:publics

java - Sonar 标志 "Bad practice": Usage of GetResource in XYZ may be unsafe if class is extended

Sonar在我们的Java项目中指示这个错误。欢迎任何有关安全编程的建议!URLurl=getClass().getResource("/myWonderfulResource.txt");if(url==null){thrownewIllegalStateException("Filenotfound:/myWonderfulResource.txt");} 最佳答案 将类设为final,使其无法扩展。警告是为了防止扩展类(可能)尝试使用不存在的资源。 关于java-Sonar标志"B

java - 避免在 If 条件中使用文字

这部分代码在sonar中被pmd拒绝了:publicStringgetFoo(){Stringfoo=System.getProperty("foo");if(foo==null){foo=System.getenv("foo");}elseif(foo==null){foo="defaultFoo";}returnfoo;}它说“避免在If条件下使用文字”。谁能告诉我这有什么问题或这条规则试图产生什么影响? 最佳答案 为什么不使用:publicStringgetFoo(){Stringfoo=System.getProperty(

java - if-else 不应该有 break 吗?

所以我的教授提到if/if-else语句中的中断是“糟糕的”代码。她到底是什么意思?另外,我如何才能修复我目前编写的代码,因为它确实按照我想要的方式工作,现在我需要摆脱break语句。intsumOne=1;intsumTwo=1;intsumOneTotal=0;intsumTwoTotal=0;while(sumOne>0||sumTwo>0){System.out.print("Enteranumbertoaddtofirstsum:");//Theuserentersinavalueforthefirstsum.sumOne=input.nextInt();/***Weusea