Articles of java

尽pipe负载很高,EC2实例的空闲百分比仍然很高

我喜欢完全加载我们的计算硬件以减less浪费的CPU时间,而在典型的内部硬件上,这非常容易:加载的机器数量与内核数量相同,空闲时间将减less到零。 这里是一个示例应用程序: public class Looper { public static void main(String[] args) { while (true) { new java.util.Random().nextBytes(new byte[4096]); } } } 在我们内部的8核硬件上,我可以运行8个这样的空闲时间(由mpstat和top报告)为零。 我甚至可以添加第9,第10等过程,空闲时间保持非常接近零。 然而,在EC2(c1.xlarge实例)上,空闲时间比我预期的要高得多。 在8个过程中,空闲时间在%1左右,而在9,10等过程中,可以增加到2%-3%或更高。 有了更复杂的程序(而不是上面的例子),空闲时间可能会比这更多。 任何人都可以解释吗? 这是非常新的亚马逊内核,不包括被盗的CPU时间,我期望看到EC2。 这是EC2的问题呢,还是对Xen来说呢? 有没有已知的解决方法?

J2EE Web应用程序生产中的热部署

如何在生产服务器上部署我的Java WAR文件,而无需停机。 我目前使用的是Apache2-> Jetty6,当我需要更新Web应用程序时,我将这个war解压缩到目录中,然后重新启动Jetty服务 /etc/init.d/jetty6 restart 这可能需要5分钟的时间重新启动有另一种方式? “大”网站如何做到这一点? 根据我的经验,像JBoss这样的热部署失败了,因为垃圾收集器没有收集所有东西,服务/进程的内存不足,情况有所改善?

运行两个不同版本的Tomcat,每个版本都有不同版本的jdk

我inheritance了Tomcat和JVM与生产服务器上的不匹配的testing系统 – 这很重要。 但是我不能在testing中改变版本。 所以我想在testing服务器中添加一个与生产匹配的新Tomcat和JVM。 作为一个实验,在我的桌面上,我 加载最新最好的Tomcat和JVM。 这些代表了“错误”的版本。 用生产系统的版本加载了一个旧的Tomcat。 用生产系统的版本加载了一个旧的JDK。 更改旧的Tomcat的configuration使用端口9080.事实上,我加了1000到除了我们没有使用SSL端口的所有端口。 在旧的Tomcat的启动脚本中定义了一个指向旧JVM的JAVA_HOME环境variables。 我们的应用程序将运行在旧的Tomcat / JVM对上。 由于我没有改变系统的JAVA_HOME定义,我不应该导致其他Tomcat中断。 在我的桌面上,两个雄猫似乎都能正常工作。 我不喜欢步骤#5,这感觉hackish。 如果我们改写tomcat,这些改变将会丢失。 任何人都可以想到我错过了什么?

Debian 6上的Java类问题:java.lang.NoClassDefFoundError:org / apache / commons / pool / impl / GenericObjectPool

我无法运行一个脚本,它应该重build一个通常在Tomcat 6(Debian版本)内部运行的Web服务(Fedora Commons数字仓库)的数据库。 我在Debian 6上运行它,尽pipeTomcat开始运行,但在运行Tomcat之前必须调用的重build脚本遇到了以下问题: ERROR 2010-10-11 13:26:38.836 [main] (Server) Fatal error while starting server java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool at org.apache.commons.dbcp.BasicDataSource.createConnectionPool(BasicDataSource.java:1492) [na:Nightly-201002202152] at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1374) [na:Nightly-201002202152] at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) [na:Nightly-201002202152] at org.fcrepo.server.storage.ConnectionPool.getConnection(ConnectionPool.java:283) [fcrepo-server-3.4.jar:na] at org.fcrepo.server.utilities.SQLUtilityImpl.i_createNonExistingTables(SQLUtilityImpl.java:281) [fcrepo-server-3.4.jar:na] at org.fcrepo.server.utilities.SQLUtility.createNonExistingTables(SQLUtility.java:146) [fcrepo-server-3.4.jar:na] at org.fcrepo.server.utilities.rebuild.RebuildDOManager.postInitModule(RebuildDOManager.java:130) [fcrepo-server-3.4.jar:na] at org.fcrepo.server.Server.<init>(Server.java:636) [fcrepo-server-3.4.jar:na] at org.fcrepo.server.utilities.rebuild.RebuildServer.<init>(RebuildServer.java:43) [fcrepo-server-3.4.jar:na] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [na:1.6.0_21] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) [na:1.6.0_21] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) [na:1.6.0_21] at […]

将WebSphere的JVM更改为x64

最近我在Windows7 x64的电脑上安装了WebSphere Portal 6.1。 但是我发现它运行在32版本的JVM上。 我怎样才能让它在x64上运行? 我应该重新安装webSphere还是刚刚交换java文件夹? 谢谢!

无法让Tomcat调用JBOSS服务的方法

我正在构build一个简单的testing应用程序,它以GWT客户端为前端。 我正在使用JBOSS作为我的应用程序服务器,并且有在JBOSS上运行的远程服务。 Eclipse是我的开发环境。 虽然我尝试通过eclipse调用一个简单的JBOSS远程接口的hello方法,但它工作正常,JNDI查找工作正常,远程接口的方法得到正确调用。 当我在JBOSS上部署业务层,并保持GWT应用程序从Eclipse运行,当时也JNDI查找工作正常,远程接口的方法得到正确调用。 在第三种情况下,我在Tomcat上部署Web应用程序,在JBOSS上部署业务层,在这种情况下,JNDI查找工作正常,但问题是当我尝试调用远程接口的方法时,出现以下错误。 以下是我的简单代码。 ===================代码============================== ===== 尝试{GreetingServiceBI bi =(GreetingServiceBI)ServiceLocator.getInstance()。getRemoteService(GreetingServiceBI.class); System.out.println(“BI初始化”); 的System.out.println(bi.getClass()的toString()); msg = bi.sayHi(input); System.out.println(“BI说你好”); catch(NamingException e){e.printStackTrace(); } 从Tomcat运行此代码时得到的exception我得到消息BI初始化类$ Proxy2之后,我从Tomcat日志 ==================exception=============================== ======== 2010年10月21日下午3时24分53秒org.apache.catalina.core.ApplicationContext日志SEVERE:调度传入的RPC调用时exceptioncom.google.gwt.user.server.rpc.UnexpectedException:服务方法'公共抽象java.lang.String com.client.GreetingService.greetServer(java.lang.String)抛出java.lang.IllegalArgumentException'抛出一个意外的exception:java.lang.reflect.UndeclaredThrowableException com.google.gwt。 user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378)com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:581)com.google.gwt.user.server。 rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:188)位于com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224)上,位于com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet。 doPost(AbstractRemoteServiceServlet.java:62)在javax.servlet.http.HttpServlet.service(HttpServlet.java:637)在ja 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain。)上的org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)上的vax.servlet.http.HttpServlet.service(HttpServlet.java:717) java:206)org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)at org.apache.catalina.core .StandardHostValve.invoke(StandardHostValve.java:127)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)at org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler。进程(Http11Protocol.java:588)在org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java :489)at java.lang.Thread.run(Unknown Source)引起的:java.lang.reflect.UndeclaredThrowableException at $ Proxy7.sayHi(Unknown Source)at com.server.GreetingServiceImpl.greetServer(GreetingServiceImpl.java:30)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at […]

在两台计算机之间通过互联网发送命令

我想用任何连接到互联网的电脑在家控制我的电脑(和连接到电脑的USB设备)。 家中的计算机必须安装一个程序,以接收来自连接到互联网的任何其他计算机的命令。 我认为这是最好的,如果我这样做的Web界面,因为它不需要在该计算机上安装软件。 由于显而易见的原因,它需要login的细节。 所以基本上这个问题就是从家庭的web界面发送encryption命令到我的电脑。 什么是最好的方法来实现这一点,我应该使用什么编程语言? 我非常了解Java,Python和C,但对Web应用程序(如Javascript和PHP)的使用经验不多。 我已经看过网上聊天的例子,因为它与我想要达到的类似的概念,除了文本可以被命令取代。 这是一个可行的解决scheme还是有更好的select? 谢谢

如何在FreeBSD 8上安装JRE?

我是FreeBSD的新手。 如何在FreeBSD 8.x上安装JRE?

Java服务无法列出目录中的文件

我在Stack Overflow中发布了这个问题,有人把我redirect到这里: 大家好。 我正在做一个Java的Windows服务,这项服务列出了一个目录中的文件,并将结果写入一个文件。 我的问题是,当我调用Java.File.isDirectory()时,服务运行它总是结果错误(它运作良好,当我手动运行服务作为任何其他程序)。 此外,如果我尝试以下操作:for(文件F:directorio.listFiles())当我作为服务运行该程序时,会导致exception。 我相信是权限相关的,因为当我将运行服务的帐户更改为我自己的凭据时,它会正确列出文件。 你知道是否有解决方法吗? (更改Windows策略,另一种特殊帐户,另一种方式列出目录的文件,其他任何事情,也许我失踪)。 提前致谢。

在Ubuntu的端口80运行Resin(caucho.com),使用无特权的用户?

没有进入代理,或端口redirect,端口转发等,有没有任何本地的方法来绑定树脂(一个Java服务器)端口80,在Ubuntu服务器,而树脂由root启动,但作为一个非特权用户www数据)? 这是Ubuntu 10.10,从caucho apt库运行Resin。 我知道如果我以root身份运行&操作Resin,我可以使用端口80,但正如您可以想象的那样,这并不理想。