清除Thread.interrupt()标志的方法

我最近inheritance了一个几乎没有Thread安全性的大型Java应用程序。 我目前正在研究的是让所有线程正确处理被中断而不是使用非常糟糕的Thread.stop() 。 问题的一部分是我不知道每个方法调用清除中断标志。 目前我知道以下将清除中断标志: Thread.interrupted() Thread.sleep(long) Thread.join() Thread.join(long) Object.wait() Object.wait(long) 我还缺少什么? 谢谢

如何从Java获取网页的源代码

我只想从Java检索任何网页的源代码。 到目前为止我找到了很多解决方案,但我找不到适用于以下所有链接的代码: http://www.cumhuriyet.com.tr?hn=298710 http://www.fotomac.com.tr/Yazarlar/Olcay%20%C3%87ak%C4%B1r/2011/11/23/hesap-makinesi http://www.sabah.com.tr/Gundem/2011/12/23/basbakan-konferansta-konusuyor# 对我来说,主要问题是某些代码检索网页源代码,但缺少代码。 例如,下面的代码不适用于第一个链接。 InputStream is = fURL.openStream(); //fURL can be one of the links above BufferedReader buffer = null; buffer = new BufferedReader(new InputStreamReader(is, “iso-8859-9”)); int byteRead; while ((byteRead = buffer.read()) != -1) { builder.append((char) byteRead); } buffer.close(); System.out.println(builder.toString());

JNDI路径Tomcat与Jboss

我有DataSource,它在context.xml中的T​​omcat 6上配置为MyDataSource。 而我是通过以下方式获取它: DataSource dataSource; try { dataSource = (DataSource) new InitialContext().lookup(“java:comp/env/MyDataSource”); } catch (NamingException e) { throw new DaoConfigurationException( “DataSource ‘” + url + “‘ is missing in JNDI.”, e); } 一切正常。 现在我将此代码导出到Jboss AP 6.我将dataSource及其连接池配置为local-tx dataSource,名称相同。 当我执行上面的代码时,我得到NamingExceptionexception。 经过一番调查,我发现在Jboss下调用我的DataSource的正确方法是 dataSource = (DataSource) new InitialContext().lookup(“java:/MyDataSource”); 任何人都可以解释一下我为什么要在Jboss下的JNDI路径中省略“comp / env”?

在inheritance的类中使用私有变量 – Java

需要对私有变量和inheritance有更多的了解。 之前我的理解是,如果一个类中有字段,并且当我inheritance该类时,不受访问限制的字段(私有变量)将存在于inheritance的类中。 但是如果有一个公共g / setter方法,我可以在基类中使用私有变量。 我怎样才能想象一个基类中的私有变量。

Spring的Json没有得到适当的回应

我试图让Spring中的控制器返回一个JSON响应无法使用3.0推荐的Jackson类。 我当然在我的class级路径中获得了jackson jar文件(jackson-core-asl-1.5.5.jar和jackson-mapper-asl-1.5.5.jar)。 至于appconfig.xml条目,我不确定我是否需要这些。 我把它们放在那里作为绝望的最后一幕,然后回到了’时尚非json ajax’。 在调试中,我看到控制器获取请求,返回foo,然后在firebug中获得406。 错误消息如下:从记录器设置为debug时:org.springframework.web.HttpMediaTypeNotAcceptableException:找不到可接受的表示 从响应:(406)该请求标识的资源仅能够根据请求“accept”headers()生成具有不可接受特性的响应。 我的appconfig.xml在这里: 我的控制器 @RequestMapping(value=”foo/bar”, method=RequestMethod.GET) public @ResponseBody foo getFoo(@RequestParam String fooId) { return new foo(fooId); } 在jsp上,进行ajax调用: function addRow() { $.getJSON(“foo/bar”,{ fooId: 1} , function(data) { alert(“it worked.”); }); } 如果还有其他需要的信息,请告诉我。

我应该使用复合主键吗?

在Java的JPA中,似乎只有第二类支持复合数据库密钥(通过EmbeddedId或IdClass注释)。 当我读到复合键时,无论语言如何,人们都会不断发现,因为它们是一件坏事。 但我无法理解为什么。 这些天使用复合键是否仍然可以接受? 如果没有,为什么不呢? 我找到了一个同意我的人: http : //weblogs.sqlteam.com/jeffs/archive/2007/08/23/composite_primary_keys.aspx 但另一个不这样做的人: http : //weblogs.java.net/blog/bleonard/archive/2006/11/using_composite.html 是仅仅是我,还是人们无法区分复合键的适用与否? 当表不表示实体时,即当它表示连接表时,我看到复合主键很有用。 一个简单的例子: Actor { Id, Name, Email } Movie { Id, Name, Year } Character { Id, Name } Role { Actor, Movie, Character } 这里的Actor,Movie和Character显然受益于Id列作为主键。 但是Role是一个多对多连接表。 我认为创建一个id只是为了识别数据库中的一行是没有意义的。 很明显,主键是{ Actor, Movie, Character } 。 它似乎也是一个相当有限的function,特别是如果连接表中的数据一直在变化,一旦主键序列回绕到0,您就会发现主键冲突。 那么,回到最初的问题,使用复合主键仍然是可以接受的做法吗? 如果没有,为什么不呢?

为Palindrome创建一个递归方法

我试图在Java中使用递归创建一个Palindrome程序但是我被卡住了,这是我到目前为止所做的: public static void main (String[] args){ System.out.println(isPalindrome(“noon”)); System.out.println(isPalindrome(“Madam I’m Adam”)); System.out.println(isPalindrome(“A man, a plan, a canal, Panama”)); System.out.println(isPalindrome(“A Toyota”)); System.out.println(isPalindrome(“Not a Palindrome”)); System.out.println(isPalindrome(“asdfghfdsa”)); } public static boolean isPalindrome(String in){ if(in.equals(” “) || in.length() == 1 ) return true; in= in.toUpperCase(); if(Character.isLetter(in.charAt(0)) } public static boolean isPalindromeHelper(String in){ if(in.equals(“”) || in.length()==1){ return true; } } […]

如何在JFrame中正确居中JPanel(FIXED SIZE)?

大家好! 我正试图解决一个 – 一个简单的问题,但我无法解决它。 我正在使用Java / Swing库开发示例应用程序; 我有一个JFrame和一个JPanel。 我只想达到以下目标: JPanel 必须在JFrame内部居中。 JPanel 必须 始终具有指定的大小 setPreferredSize()方法。 它不能在这个尺寸下resize。 我尝试使用GridBagLayout:这是我能做到的唯一方式。 请参阅以下示例: /* file StackSample01.java */ import java.awt.*; import javax.swing.*; public class StackSample01 { public static void main(String [] args) { JFrame frame = new JFrame(); JPanel panel = new JPanel(); panel.setPreferredSize(new Dimension(100, 100)); panel.setBackground(Color.RED); frame.setLayout(new GridBagLayout()); frame.add(panel, new […]

使用Spring IoC设置枚举值

有没有办法在构建时通过Spring IoC设置这样的枚举值? 我想要做的是在类加载时注入下面的代码片段中硬编码的值: public enum Car { NANO (“Very Cheap”, “India”), MERCEDES (“Expensive”, “Germany”), FERRARI (“Very Expensive”, “Italy”); public final String cost; public final String madeIn; Car(String cost, String madeIn) { this.cost= cost; this.madeIn= madeIn; } } 假设应用程序必须部署在德国,Nanos是“几乎免费”,或者在印度,法拉利是“负担不起”。 在这两个国家,只有三辆汽车(确定性集),不多也不少,因此是枚举,但它们的“内在”值可能不同。 因此,这是不可变的上下文初始化的情况。

Java中的时区

我允许用户在我的网络应用上根据自己选择的时区安排活动。 我想向最终用户提供一个很好的时区列表,然后将其轻松转换为服务器端的java.util.TimeZone对象。 String[] TimeZone.getAvailableIds()是我可以使用的,但问题是它打印了大约585个时区ID。 向用户提供简短的时区列表(如Windows区域用于时区设置)以及使用其ID在服务器端轻松转换为TimeZone对象的最佳方法是什么?