小编And*_*son的帖子

在webapp中获取当前的svn修订版

在java webapp中显示/使用修订号的最佳方法是什么?

我们只使用ant来构建我们的.war存档,没有构建服务器等.我希望有一些如果$ ref我可以在资源文件中写入,但只有在提交相关文件时才会更新.我需要全球.

你会推荐什么?更新某些文件的提交后触发器?自定义ant脚本?有没有更黑的方式这样做?或者最好让我自己的版本号独立于svn.

编辑:很棒的建议!非常感谢你的答案!

java svn revision web-applications

9
推荐指数
2
解决办法
5618
查看次数

从java运行oracle sql脚本

我有一堆sql脚本,应该在java Web应用程序启动时升级数据库.

我尝试使用ibatis scriptrunner,但它在定义触发器时失败了,其中";" 字符不标记声明的结尾.

现在我已经编写了我自己的脚本运行版本,它基本上可以完成这项工作,但会破坏可能的格式和注释,尤其是在"创建或替换视图"中.

public class ScriptRunner {
private final DataSource ds;


public ScriptRunner(DataSource ds) {
    this.ds = ds;
}

public void run(InputStream sqlStream) throws SQLException, IOException {
    sqlStream.reset();
    final Statement statement = ds.getConnection().createStatement();
    List<String> sqlFragments = createSqlfragments(sqlStream);
    for (String toRun : sqlFragments) {
        if (toRun.length() > 0) {
            statement.execute(toRun);
        }
    }
}

private static List<String> createSqlfragments(InputStream sqlStream) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(sqlStream));

    List<String> ret = new ArrayList<String>();
    String line;
    StringBuilder script = new …
Run Code Online (Sandbox Code Playgroud)

java sql oracle scripting inputstream

9
推荐指数
3
解决办法
3万
查看次数

在生产系统上详细分析Tomcat Heap

分析了在tomcat中运行的轻量级Web应用程序,使用JMX控制台,结果发现"PS Old Gen"正在缓慢但不变地增长.它从200MB开始,每小时增长约80MB.

CPU不是问题,它平均运行在0-1%,但它在某处泄漏内存,因此在部署后几天它会变得不稳定.

我如何找出堆上分配的对象?你知道有什么好的教程或工具吗?

java heap tomcat jmx

9
推荐指数
1
解决办法
8444
查看次数

使用Google Collections创建弱多图

是否有相当于MultiMaps的漂亮MapMaker?目前我创建这样的缓存:

    public static Map<Session,List<Person>> personCache = new MapMaker().weakKeys().makeMap();
Run Code Online (Sandbox Code Playgroud)

MultiMap的重点是避免嵌套的List值.有没有办法用弱键构造多图?

java weak-references multimap guava

9
推荐指数
1
解决办法
1982
查看次数

不可变JDK类的完整列表?

在jdk中是否有一个事实上的不可变类列表?

技术上不可变类包括明显的Integer,Double等.

事实上,不可变的将包括例如java.lang.String - 它在技术上可能是可变的,但实际上它不是.

另外,是否需要接口/抽象类(如javadoc中所述)是不可变的?

如果你不能提供一个完整的List,如果你知道一堆在javadoc中声明不变性的类,我会很高兴的.

java immutability

8
推荐指数
2
解决办法
1万
查看次数

如何在Hibernate条件api查询中插入"优化器提示"

我有一个使用条件api动态组合的hibernate查询.如果按原样执行,它会生成难以忍受的慢速查询.

但我已经注意到,如果我在查询前加上/*+ FIRST_ROWS(10)*/,它们的速度提高了大约1000%.我怎么能用标准api做到这一点?

我尝试过criteria.setComment(..),但这似乎被忽略了.

在hibernate docs中,3.4.1.7.提到了查询提示,但它明确指出:"请注意,这些不是SQL查询提示"

查询的结果将被分页,因此在99%的情况下,我将显示结果1-10.

java sql oracle hibernate criteria

7
推荐指数
3
解决办法
2万
查看次数

jdk来源:// HD,第2-1节中的神秘评论

我只是偶然发现了这个评论.

    public static int lowestOneBit(int i) {
    // HD, Section 2-1
    return i & -i;
    }
Run Code Online (Sandbox Code Playgroud)

在1.5 java源代码中.这个评论是什么意思?它是一本书的参考?一个规格?

java comments

6
推荐指数
1
解决办法
306
查看次数

jsf的日期+时间选择器

是否有任何现成的JSF组件允许选择日期+事件的时间?我知道的所有组件只允许日期.手动添加时间是单调乏味的.

time jsf components date picker

5
推荐指数
1
解决办法
2万
查看次数

紧凑的数据结构,如集合

我正在寻找一个特定的数据结构,但我忘了它的名字.如果我知道它的名字将是微不足道的,我会在维基百科中查找:)

基本上,它就像一个集合 - 除了你不能迭代它.

你把一些值放进去,比方说80k邮政编码.

然后你可以测试一个给定的字符串肯定不是一个邮政编码,但如果插入太多的邮政编码,你最终会得到误报.

这种结构的内存消耗很小.

它的名字是什么,在java中有实现吗?

language-agnostic algorithm bloom-filter data-structures

5
推荐指数
1
解决办法
446
查看次数

从Servlet关闭/取消部署tomcat

我在Tomcat中有一个init servlet来加载关键数据.有时需要在某些错误上中止启动.

如何在不调用的情况下优雅地关闭已部署的应用程序/整个应用程序服务器 System.exit(1)

我想避免通过端口调用关闭servlet,因为我的安装中没有配置.

在web.xml中定义的关闭时,可能需要从侦听器运行任务

java tomcat shutdown

5
推荐指数
1
解决办法
2822
查看次数

正确printtacktrace的servlet异常

所以我使用过滤器来捕获servlet异常(因为我们使用混合的jsf/plain servlets)

当捕获ServletException并调用printstacktrace时,大部分信息都会丢失.

"真正的"根异常似乎隐藏在"有趣"的表达背后

((ServletException) e.getRootCause().getCause()).getRootCause().getCause().getCause().getCause()
Run Code Online (Sandbox Code Playgroud)

这显然不是这样做的方法.

是打印此类例外的"完整"信息的简便方法.有人可以解释一下为什么异常这样包裹?

java servlets exception stack-trace

4
推荐指数
1
解决办法
2800
查看次数

onBecomes在Javascript中可见,用于无咔嗒声的分页?

是否有任何javascript库,只要某个元素在浏览器画布中可见,它就会为我提供自定义事件?

基本的想法是,一旦列表中的最后一个元素在屏幕上变得可见,我想加载接下来的10个元素,这样用户就不需要点击"下一页"按钮.为了实现这一点,一旦显示最后一个元素就会触发的onBecomesVisible事件将非常方便.有这样的事吗?

Slashdot以这种方式进行首页加载.

javascript ajax pagination

1
推荐指数
1
解决办法
473
查看次数