如何在Java EE环境中管理数据库和文件系统的事务?

我将文件的属性(大小,更新时间……)存储在数据库中。 所以问题是如何管理数据库和文件的事务。 在Java EE环境中,JTA只能管理数据库事务。 如果更新数据库成功但文件操作失败,我应该为此编写文件回滚方法吗? 此外,EJB容器中的文件操作违反了EJB规范。 你怎么看?

如何在Eclipse中强制进行线程转储?

我正在通过BEA Weblogic Server v9.2运行时环境在Eclipse中启动Weblogic应用程序。 如果这是直接从命令行运行,我会执行ctrl-BREAK来强制进行线程转储。 有没有办法在Eclipse中做到这一点?

更快的方式来读取文件

我正在开发一个包含大约400个输入文件和大约40个输出文件的程序。 它很简单:它读取每个输入文件,并生成一个新文件但更大(基于算法)。 我正在使用BufferedReader中的read()方法: String encoding =”ISO-8859-1″; FileInputStream fis = new FileInputStream(nextFile); BufferedReader reader = new BufferedReader(new InputStreamReader(fis, encoding)); char[] buffer = new char[8192] ; 要读取我正在使用的输入文件: private String getNextBlock() throws IOException{ boolean isNewFile = false; int n = reader.read(buffer, 0, buffer.length); if(n == -1) { return null; } else { return new String(buffer,0,n); } } 对于每个块我正在进行一些检查(比如在块中查找一些字符串)然后我将其写入文件: […]

是否可以用Java编写设备驱动程序?

介绍 我听说过用Java编写设备驱动程序(听说“用我的耳朵”,而不是来自互联网)并且想知道……我一直认为设备驱动程序在操作系统级别上运行,因此必须用同一种语言编写作为操作系统(因此主要是CI假设) 问题 这个假设我一般都错了吗? (看起来如此) 如何在操作系统中使用“外星人”语言的驱动程序? 无论如何,对于设备驱动程序有什么要求(从编程语言的角度来看)? 谢谢阅读

有没有人知道一个java组件来检查IP地址是否来自特定的网络/网络掩码?

我需要确定给定的IP地址是否来自某个特殊网络,我必须自动进行身份validation。

使用javax.print库以属性(托盘控制,双工等)打印

我一直在努力确定一种方法来使用标准Java打印库来打印文件 – 特别是PDF文档 – 具有某些属性 – 特别是某些托盘或使用双面打印。 关于如何做到这一点存在大量的文档,事实上,我已经研究并尝试了这些方法。 典型的方式是这样的: public static void main (String [] args) { try { PrintService[] pservices = PrintServiceLookup.lookupPrintServices(null, null); //Acquire Printer PrintService printer = null; for (PrintService serv: pservices) { System.out.println(serv.toString()); if (serv.getName().equals(“PRINTER_NAME_BLAH”)) { printer = serv; } } if (printer != null) { System.out.println(“Found!”); //Open File FileInputStream fis = […]

文件系统上的哪个地方是我的Java类加载的?

我认为这是每个Java程序员遇到的情况,如果他们做得足够长的话。 您正在进行一些调试并对课程进行更改。 当你重新运行程序时,这些更改似乎没有被提取,而是旧的类似乎仍在运行。 你清理和重建一切,同样的问题。 有时,这可以归结为类路径问题,同一个类在类路径上不止一次,但似乎没有一种简单的方法来确定加载的类来自哪里…… 有没有办法找到加载的类的文件路径? 如果从.class文件或.jar文件加载类,则.jar 。 有任何想法吗?

如何使用spring java配置在单例bean中生成原型对象

这是我现在的工作正常。 它所做的只是一个返回项目对象数组的市场类: 我有上课的市场 class market { public ArrayList createItems(HashMap map) { ArrayList array = new ArrayList(); for (Map.Entry m : map.entrySet()) { Item item = new Item(); item.setName(m.key()); item.setValue(m.value()); array.add(item); } return array; } } class Item是带有getter和setter的名称和值的简单类 以下是我的配置文件的外观: @Configuration public class MarketConfig { @Bean public Market market() { return new Market(); } } 我想如何改变我的代码:(原因:我不想要 Item […]

如何将JSON反序列化为平面,类似Map的结构?

请记住,JSON结构之前是未知的,即它完全是任意的,我们只知道它是JSON格式。 例如, 以下JSON { “Port”: { “@alias”: “defaultHttp”, “Enabled”: “true”, “Number”: “10092”, “Protocol”: “http”, “KeepAliveTimeout”: “20000”, “ThreadPool”: { “@enabled”: “false”, “Max”: “150”, “ThreadPriority”: “5” }, “ExtendedProperties”: { “Property”: [ { “@name”: “connectionTimeout”, “$”: “20000” } ] } } } 应该反序列化为具有键的类似Map的结构(为了简洁,不包括以上所有内容): port[0].alias port[0].enabled port[0].extendedProperties.connectionTimeout port[0].threadPool.max 我目前正在调查jackson,所以我们有: TypeReference<HashMap> typeRef = new TypeReference<HashMap>() {}; Map o = objectMapper.readValue(jsonString, […]

在webapp中正常关闭ExecutorService?

在我的webapp中,我创建了一个使用具有固定大小ThreadPool的ExecutorService的服务。 我在整个应用程序生命周期中重用了相同的ExecutorService 。 private static ExecutorService pool = Executors.newFixedThreadPool(8); 所有都在Tomcat中运行,它在向下发出错误时给出了以下错误: appears to have started a thread named [pool-1-thread-1] but has failed to stop it. This is very likely to create a memory leak. 我确实意识到我需要在关闭tomcat之前关闭ExecutorService。 Soms SO线程已经谈到了这一点,但我找不到一个干净的方法来处理这个问题。 我是否应该按照Tim-bender的建议使用ShutdownHook来正常关闭线程和执行程序 ? 或者我应该使用CachedThreadPool吗?