使用ConcMarkSweepGC的连续CMS集合

在Linux上使用以下JVM选项启动Tomcat(2cpu,4g RAM,800M ehcache元素): -Xmn512m -Xmx2g -Xms2g -XX:+UseConcMarkSweepGC -Xss128k -XX:PermSize=64m -XX:MaxPermSize=128m -XX:+DisableExplicitGC -XX:+PrintGCTimeStamps -XX:+PrintGCDetails 运行流量低,没有数据库问题,没有批处理过程在凌晨(06:00)20分钟之前, 堆内存达到-Xmx值并且CMS反复运行 ,最终返回到正常的GC行为,此时消息Unloading class sun.reflect.GeneratedMethodAccessorXXXXX已打印到日志中。 请你能: 建议一些GC调整点? 要么 建议可能的原因? GC日志: 2011-06-30T06:15:03.494+0900: 145634.229: [GC 145634.230: [ParNew: 463698K->37791K(471872K), 0.0342030 secs] 1848117K->1434326K(2044736K), 0.0343190 secs] [Times: user=0.13 sys=0.01, real=0.03 secs] 2011-06-30T06:15:12.423+0900: 145643.159: [GC 145643.159: [ParNew: 457247K->36210K(471872K), 0.0302130 secs] 1853782K->1443540K(2044736K), 0.0303470 secs] [Times: user=0.12 sys=0.00, real=0.03 secs] […]

映射键值的Hibernate Criteria

我的hibernate实体中有以下属性: @ElementCollection(targetClass = String.class, fetch = FetchType.EAGER) @CollectionTable(name=”FORMDATA”, joinColumns = @JoinColumn(name=”FORM_ID”)) private Map formData; 我想用hibernate Criteria进行查询,我希望将表单与给定的键值对匹配,如下所示: criteria.add(Restrictions.like(“formdata.key”, “%”+value+”%”).ignoreCase()); 其中’key’和’value’通过方法参数传递。 谁知道这应该如何工作? 对我来说,hibernate文档对此并不清楚。 非常感谢,B。

Google Guava的CacheLoader loadAll()方法实现问题

我有兴趣知道google guava 11.0库中引入的loadAll方法实现的有效方法是什么。 以下是描述加载所有扩展方法实现的代码 根据CachesExplained的示例 LoadingCache graphs = CacheBuilder.newBuilder().maximumSize(1000) .refreshAfterWrite(1, TimeUnit.MINUTES) .build( new CacheLoader() { public Graph load(Key key) { // no checked exception return getGraphFromDatabase(key); } public Map loadAll(Iterable keys) { return getAllGraphsFromDatabase(keys); } } ); private Map getAllGraphsFromDatabase(Iterable keys) { lListOfGraph = //resultset got from DB Call for (lCount = 0; lCount < […]

将密钥和SSL证书导入java密钥库

我有pem格式的证书文件和私钥文件。 是否可以使用Java代码将这些文件加载​​到Java密钥库中,使用JDK附带的默认库而不是第三方库。 当我尝试谷歌搜索时,我只能找到.der格式的文件,使用java代码导入到java密钥库中。 http://knowledge-oracle.blogspot.in/2009/02/import-private-key-and-certificate-in.html 是否可以通过java代码将pem格式的密钥和证书文件加载到java密钥库中,而无需转换为.der格式?

Mac OS X Server上的Java:游戏结束?

作为一名目前正在开发使用Java / Tomcat后端的Web应用程序的开发人员,Apple最近宣布弃用Java令我感到震惊。 主要是因为我计划在Mac OS X Server上托管这个Web应用程序(已经在10.5上,很快将在10.6上)。 来自http://www.appleoutsider.com/2010/10/22/java/ : 自英特尔过渡以来,为达尔文构建服务器虚拟机几乎是微不足道的。 这是真的吗? 是否有某个文档描述了如何为Mac OS X Server构建无头Java VM?

如何使用通配符将JavaCompiler的类路径设置为多个.jar文件

我正在使用javax.tools JavaCompiler编译一些java代码,我试图在我的classpath中使用通配符以包含所有.jar文件,但是我失败了。 这是我的代码: String classpath = “C:\tomcat6\webapps\myapp/WEB-INF/lib/javax.ws.rs-api-2.0-m10.jar;” + “C:\\tomcat6\\webapps\\myapp/WEB-INF/lib/javax.persistence-2.1.0.jar”; Iterable options = Arrays.asList(“-d”, classesBaseDir, “-classpath”, classpath); JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, diagnostics, options, null, file); boolean result = task.call(); 上面的代码工作得很好。 但是当我试图将classpath更改为 String classpath = “C:\\tomcat6\\webapps\\myapp/WEB-INF/lib/*”; 它失败了 compiler.err.doesnt.exist|package javax.ws.rs does not exist … symbol: class GET location: class com.my.oasis.resources.TestClass 09/04/2014 14:27:09:030 | COMPILER_DIAGNOSTIC | compileResource() – […]

java模块可以调用交流模块吗?

只是出于兴趣,是否可以从java模块调用C模块? 如果是这样,怎么办?

用Bouncy Castle复制Java中的’openssl smime’?

我手头有问题。 我的不了解Java的同事正在使用OpenSSL命令对文件进行签名,如下所示: openssl smime -binary -sign -certfile WWDR.pem -signer passcertificate.pem \ -inkey passkey.pem -in manifest.json -out signature -outform DER \ -passin pass:12345 如您所见,这里有三个文件被赋予openssl命令以生成签名。 现在我们想要使用Java复制相同的function,因为我们假设要签名的内容将是动态的,并且本质上是服务器端的。 我读到BouncyCastle是要走的路。 但我不知道如何使用该库。 我对密码技术也不是很熟悉。 我无法理解如何使用上面的所有三个文件来对manifest.json的内容进行签名。 如果有人可以指导我找到正确的代码或给我一个开始,我将非常感谢你的努力。

为什么线程执行会提供不同的输出?

我试图在线程(Java)中测试/学习一些基本的东西,并遇到了一个简单但令人困惑的输出。 以下是我的课程 public class CopyMaster implements Runnable{ @Override public void run() { System.out.println(“Run called from Copy Master for thread “+Thread.currentThread().getName()); } } 从我调用线程的主类 public class Main { public static void main(String[] args) { Thread[] threadArray = new Thread[4]; for(int i=0; i<threadArray.length; i++){ threadArray[i] = new Thread(new CopyMaster()); } for(Thread t : threadArray){ //[Line of intrest]System.out.println("Starting […]

如何使用Java从Sqlite3数据库获取解析日期?

我通过使用POJO为我的方法创建模型,从sqlite3 DB获取数据。 在arraylist中检索数据时,我得到日期解析错误。 日期被定义为sqlite3数据库中的时间戳,并且在编译它时抛出: Unparseable date:“2015-05-21 12:41:56”错误 。 在编译查询时,它会抛出: 解析时间戳的错误我正在使用getDate()从表中检索日期。 public List getAllData() { List meters = new ArrayList(); try { LOGGER.info(“############### FetchData.getAllData() start”); Statement statement = DBConnection.getConnection().createStatement(); ResultSet rs = statement.executeQuery(“SELECT * FROM ENERGY_METER”); LOGGER.info(“############### FetchData.getAllData() meters:”+rs.getDate(“CREATION_TIME”)); while (rs.next()) { EnergyMeter energyMeter = new EnergyMeter(); energyMeter.setDEVICE_IP(rs.getString(“IP”)); energyMeter.setCREATION_TIME(rs.getDate(“CREATION_TIME”)); energyMeter.setDESCRIPTION(rs.getString(“DESCRIPTION”)); energyMeter.setDEVICE_NAME(rs.getString(“DEVICE_NAME”)); energyMeter.setEMAIL_ID(rs.getString(“EMAIL_ID”)); energyMeter.setFDU_NAME(rs.getString(“FDU_NAME”)); energyMeter.setICBS(rs.getString(“ICBS”)); energyMeter.setLOCATION(rs.getString(“LOCATION”)); energyMeter.setMAC_ADDRESS(rs.getString(“MAC_ADDRESS”)); […]