Articles of java

JBoss的端口8080以外的其他端口不能正常工作

我们有一个带有两个JBoss实例的服务器,其中一个运行在8080上,另一个运行在8081上。我们需要为8081服务器启用HTTPS,首先我们尝试通过生成密钥库并编辑server.xml在8080端口实例上启用https并成功地工作。 但是,当我们对8081尝试了同样的事情时,没有注意到我们先删除了8080服务器的https,然后才启用了8081。 这是用于8080和8081的server.xml的唯一区别。唯一的区别是在尝试启用https 8081端口实例时,端口从8080更改为8081。 我做错了什么,需要改变什么? 注:当我的意思是启用8080我的意思是当你访问https:// URL:8484你实际上是访问8080端口的实例。 但是,当ssl启用8081,我访问https:// URL:8484我得到的网页不可用。 无条件版本 <Server> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.core.JasperListener" /> <Service name="jboss.web"> <!– https –> <Connector port="8080" address="${jboss.bind.address}" maxThreads="350" maxHttpHeaderSize="8192" emptySessionPath="true" protocol="HTTP/1.1" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" compression="on" ompressableMimeType="text/html,text/css,text/javascript,application/json,text/xml,text/plain,application/x-javascript,application/javascript"/> <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" address="${jboss.bind.address}" keystoreFile="${jboss.server.home.dir}/conf/supun1.keystore" keystorePass="aaaaaa" truststoreFile="${jboss.server.home.dir}/conf/supun1.keystore" truststorePass="aaaaaa" /> <!– https1 –> […]

交换空间最大化 – JVM死亡

我有一个运行3个WordPress实例的服务器,MySql,Apache和64m初始和最大堆上的play framework 2.0。 如果我增加运行的JVM的最大堆,甚至16米,我看到128米的交换空间稳定地填满,直到JVM死亡。 我注意到,只有当我在Java虚拟机网站上插入JVM才会死亡。 我认为这是因为JVM在收集时没有要求内存。 我注意到,当我重新启动Apache时,我回收了大约一半的交换和内存。 那么有什么办法可以configurationApache以消耗更less的内存? 还有什么可能导致交换空间得到如此巨大的冲击只有16m添加到JVM的最大堆大小? 服务器运行: Ubuntu 12.04 内存: 408米 交换: 128米 Apache mods: alias.conf alias.load auth_basic.load authn_file.load authz_default.load authz_groupfile.load authz_host.load authz_user.load autoindex.conf autoindex.load cgi.load deflate.conf deflate.load dir.conf dir.load env.load mime.conf mime.load negotiation.conf negotiation.load php5.conf php5.load proxy_ajp.load proxy_balancer.conf proxy_balancer.load proxy.conf proxy_connect.load proxy_ftp.conf proxy_ftp.load proxy_http.load proxy.load reqtimeout.conf reqtimeout.load rewrite.load setenvif.conf setenvif.load status.conf […]

多个Java servlet容器的开销

我正在为我正在使用的团队设置一个开发服务器。 他们开发JavaEE应用程序,这些应用程序被部署并作为WAR文件运行。 他们将不可避免地需要在这台服务器上不断运行一两个应用程序。 还有一些其他的Java应用程序也需要在服务器上运行,包括Jenkins,Artifactory和其他一些作为WAR部署的内部工具。 Jenkins和Artifactory默认运行在自己的servlet容器中,以这种方式设置它们非常简单。 但是在我看来,通过让所有WAR在Tomcat的一个实例中运行,可能会节省一些内存和性能,而不是为Jenkins运行Winstone,为Artifactory运行Jetty,为Tomcat运行内部工具。 我们是否可以看到使用单个servlet容器带来的重大好处?

什么阻止我的程序发送电子邮件?

我有一个Java程序,它使用javax.mail发送SMTP消息。 这个程序在Linux上运行FINE,我想事先强调一下。 当我在Windows 7 x64机箱上尝试使用相同的代码时,出现此错误: send failed, exception: javax.mail.MessagingException: Could not connect to SMTP host: smtp.west.cox.net, port: 25; nested exception is: java.net.SocketException: Network is unreachable: connect 这里是代码: Session session = Session.getInstance(props, null); MimeMessage msg = new MimeMessage(session); msg.setFrom(); msg.setRecipients(Message.RecipientType.TO, props.getProperty("mail.to", "[email protected]")); msg.setSubject(mySubject); msg.setSentDate(new Date()); msg.setContent(sBuf.toString(), "text/html"); Transport.send(msg); 这个程序几乎使用默认设置。 它可以在同一networking上的另一个框上正常工作。 它使用我用于我的常规邮件客户端,相同的设置工作正常。 这个Windows盒子上有一些阻止SMTP的东西,但是只能用于Java。 我安装了Symantec(Norton)360。 closures它并没有什么区别,但重新启动到安全模式(禁用几乎所有的东西)都可以使程序工作并发送邮件。 所以,回顾一下: 程序代码工作。 […]

ZEUS ZXTM打破HTTP请求到Java Servlet HTTP 404?

我有一个名为“ARI”的Java Servlet,它从归档数据库中检索数据,并从该数据库返回一个XML有效载荷。 我们在虚拟服务器上运行这个servlet的多个实例,并且可以通过不同的端口号访问,如下所示: testserver.co.uk:61061/aricp/ari testserver.co.uk:61062/aricp/ari 这两个servlet都可以直接从客户端直接访问,这里是客户端和服务器之间通过数据包捕获进行的示例对话。 成功的HTTP请求: POST / aricp / ari HTTP / 1.1 Accept-Charset:UTF-8 内容types:application / x-www-form-urlencoded; charset = UTF-8 用户代理:Java / 1.6.0_25 主持人:testserver.co.uk:61061 接受:text / html,image / gif,image / jpeg,*; q = .2, / ; Q = 0.2 连接:保持活力 内容长度:11 ID = 1-134ISR 请注意请求中的POSTvariables“id” 成功的回应 HTTP / 1.1 200 OK 服务器:Sun-ONE-Web-Server / […]

Apache Tomcat重新启动

我们在Windows 2008 Server上运行tomcat 6.0.35。 它每隔几天就会耗尽内存。 我们在日志中注意到服务器正在随机重新初始化。 我们在tomcat日志中看到这个。 [main] INFO org.apache.catalina.core.StandardService-启动服务Catalina 每当它下降,我们看到这个警告信息: ERROR org.apache.catalina.loader.WebappClassLoader- Web应用程序[/ webconsole]使用[org.apache.log4j.helpers.ThreadLocalMap]types的键创build了一个ThreadLocal(值为[org.apache.log4j.helpers.ThreadLocalMap@38fc73ee ])和types为[java.util.Hashtable](值为[{}]的值),但在Web应用程序停止时无法将其删除。 这很可能造成内存泄漏。 我们认为这可能是log4j错误的一个问题。 然而,更大的问题是服务器为什么重新初始化? 我们检查是否有一些正在监视的文件正在被监视,从而导致重新启动,但没有。 如果有人有任何的指针,将不胜感激。

禁用Java代理

目前运行提供一些Atlasian工具(Crucible,fisheye,jira)的服务器,我想出于安全原因禁用服务器上的任何Java代理执行。 我的观点不是禁用可通过-javaagent CLI参数与应用程序一起启动的代理程序,而是禁用可以dynamic连接到正在运行的实例的代理程序(请参阅例如byteman)。 也就是说,使Java应用程序不可“附着”。 另一个限制是由于configuration的复杂性,修改这些工具命令行是很难的。 所以,对于所有Java应用程序来说,对于整个服务器来说,更改必须是全局的。 有什么办法可以全局禁用这个“function”? 通过Javaconfiguration,或者其他什么?

如何在Windows上使用Chef recipe在后台执行命令?

我有一个我正在与厨师部署的Java应用程序。 我希望它开始,并允许厨师客户端退出。 然而,似乎厨师客户端等待命令完成,无论我如何运行它。 我努力了: 用execute资源执行javaw 执行与start 用start /B执行 创build批处理脚本并使用start和start /B 有没有办法运行Java程序,而不阻止厨师客户端?

生活在我的numproc屏障

所以我支付每个月50美元左右的2GB VPS,其中有200个numproc的限制。 我不知道这是好还是不好,我也不是很技术。 我一直有一个稳定的VPS运行几个VOIP服务器,一些论坛和其他各种非营利网站/工具。 然后我安装了Openfire XMPP服务器… 这个服务器在单个进程下产生了大约140个Java线程,这正在消除我的numprod限制。 任何想法,如何我可以减less线程数量? 这个过程是: /opt/openfire/jre/bin/java -server -Xms128m -Xmx256m -DopenfireHome=/opt/openfire -Dopenfire.lib.dir=/opt/openfire/lib -classpath /opt/openfire/lib/startup.jar -jar /opt/openfire/lib/startup.jar 谢谢

为什么完整的GC不能在我设置的gcInterval上运行?

ColdFusion 10 Update 10 Windows Server 2008 R2 Java 1.7.0_21 我正在设法让Full GC每10分钟运行一次。 在过去的早期版本的ColdFusion中,我使用了gcInterval JVM arg,但是我已经用详细的GC日志证实了Full GCs仍然在小时内发生(除非老一代得到如此充足以至于强制完全收集) 。 以下是来自ColdFusion10 \ cfusion \ bin \ jvm.config的完整JVM参数(为了便于阅读,添加了换行符) 还有什么我需要做的,以使这个工作在ColdFusion 10? java.args= -server -Xms4072m -Xmx4072m -XX:PermSize=512m -XX:MaxPermSize=512m -Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000 -XX:+UseParallelGC -XX:+UseParallelOldGC -Xloggc:gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=1024K -Xbatch -Dcoldfusion.home={application.home} -Dcoldfusion.rootDir={application.home} -Dcoldfusion.libPath={application.home}/lib -Dorg.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true -Dcoldfusion.jsafe.defaultalgo=FIPS186Random -Dcoldfusion.classPath={application.home}/lib/updates,{application.home}/lib,{application.home}/lib/axis2,{application.home}/gateway/lib/,{application.home}/wwwroot/WEB-INF/flex/jars,{application.home}/wwwroot/WEB-INF/cfform/jars