小编Par*_*rag的帖子

如何防止Jetty显示与上下文相关的信息

我正在使用Jetty部署生产网站.让我们假设我的网站是foo.com当我将浏览器指向不存在的上下文(比如foo.com/notavailable)时,Jetty会显示一个错误页面,其中包含部署在其上的所有上下文的信息.

它看起来像这样:

此服务器上没有上下文匹配或处理此请求.此服务器已知的上下文是:

  • / test ---> org.mortbay.jetty.webapp.WebAppContext@6910fe28 {/test,/root/webserver/jetty-6.1.4/webapps/test}

我想阻止Jetty显示此消息,因为它包含服务器上下文的完整路径.

有没有办法做到这一点?

jetty

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

在Java中集中调试

问题:

我正在尝试在Java Swing应用程序中调试一些与焦点相关的问题.有些时候某些组件似乎正在抓住焦点,我无法弄清楚代码在哪里发生.

我尝试过的:

  • A VetoableChangeListenerKeyboardFocusManager(for focusOwner).这确实为我提供了有关哪些组件丢失并获得焦点的信息,但它无法帮助我确定代码中请求焦点的位置.

  • 一个习惯KeyboardFocusManager.但在这方面我也只能在收到事件时进行干预.到那时,调用的调用栈requestFocus已经丢失.

  • 一个习惯EventQueue.但是我也能够干预dispatchEvent从EDT再次调用的方法.调用堆栈再次丢失(有趣的postEvent(AWTEvent)是没有调用).

题:

我正在寻找的是调用时的调用堆栈requestFocusInWindow.是否有可能获得此信息.也许,如果我可以重新定义用于发布事件的方法EventQueue,那么我可以打印堆栈转储.但是EventQueue.postEvent(AWTEvent)不会被调用.

任何人都可以建议一个解决方案,它可以帮助我在拨打requestFocusrequestFocusInWIndow可能已经拨打电话时获得筹码状态吗?

java swing focus

11
推荐指数
2
解决办法
2739
查看次数

克隆是获取Mercurial存储库内容的唯一方法吗?

我试图通过运行来获取Netbeans IDE的源代码:

hg clone http://hg.netbeans.org/main/

然而,这似乎是永远的,它并没有给我任何状态,告诉我下载完成的百分比.如果失去我的互联网连接,我必须重新开始.

我意识到Mercurial是一个分布式源代码控制系统,也许'克隆'命令花了很长时间,因为它获取了所有文件的整个历史记录(这是正确的吗?)

当我们从CVS获取资源时,我们通常会获得没有整个历史记录的来源.是否可以使用Mercurial做这样的事情?

mercurial

10
推荐指数
2
解决办法
5294
查看次数

哪个是渲染任意HTML的最佳Wicket组件?

我正在使用Apache Wicket实现一个简单的降价维基.维基通常会根据用户输入的内容呈现任意HTML.

我对哪个Wicket组件最适合呈现这样的任意HTML感到困惑.

我尝试了Label组件,但它没有正确呈现列表,MultilineLabel(放置中断而不是常规列表HTML)也没有.

谢谢你的帮助.

更新: Label组件完美运行.我的错误是我无法让它早点上班.这是一些糟糕的样式表和深夜编码的组合.谢谢你的回答.正如所建议的那样,我还要查看一些WYSIWYG编辑器,这些编辑器实际上可能比降价更好.Visural Wicket似乎特别有前途.

java label wicket list

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

Eclipse可以像多个源文件夹一样拥有多个输出文件夹

我有一个Eclipse项目,它有两个源文件夹 - 'src'和'test'.我希望这两个文件夹的构建进入单独的输出文件夹.

其原因是,这两个文件夹中有一个名为ServiceProviders.properties的属性文件,该文件对代码的生产和试运行不同的值.

问题是,由于只有一个输出文件夹可以复制所有编译的类,因此不会复制'test'中的属性文件,因此我的测试代码会获得属性文件的生产版本.我想我试图模拟我们在Maven中使用不同类路径的方式(以及它们的查找顺序).

如果这不起作用,我将使用JVM属性来指定我可以在测试用例中使用的某些值.但是,它似乎不是一个优雅的解决方案.

使用Maven会使这个工作,但我不能在这个项目中使用Maven.

更新1:

谢谢你的答案.由于它们是相同的,我接受了之前发布的那个.

Upadte 2:

即使我可以为相应的源文件夹获取多个输出文件夹,但它并没有解决我在运行测试用例时从测试加载ServiceProviders.properties的原始问题,以及当我在服务器上运行应用程序时从src加载的问题. Eclispe的.我使用它的方法是使用测试文件夹中的ServiceProviders.properties文件创建一个单独的jar文件.在我的测试用例的运行配置中,我添加了这个jar文件并更改了顺序,因此它显示为查找的第一个依赖项.

java eclipse

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

在使用替代方案的Linux系统上,JAVA_HOME的正确路径是什么?

确定正确的路径JAVA_HOMEUbuntu系统上有点复杂,因为它使用了替代方案.在我的机器上,这是替代方案在到达实际的java或javac之前至少创建两个间接层的方式.

usr/bin/javac -> /etc/alternatives/

/etc/alternatives/java -> /usr/lib/jvm/jdk1.7/bin/javac
Run Code Online (Sandbox Code Playgroud)

如果我设置JAVA_HOME/usr/lib/jvm/jdk1.7,那么我的系统java可能会与指向的java不一致JAVA_HOME,如果我更新替代使用另一个java.

我的问题是,JAVA_HOME在使用替代品的系统上,正确的价值是什么.我倾向于认为JAVA_HOME应该这样做/usr

这样TOMCAT或使用它的任何其他软件都会将"bin"附加到JAVA_HOME并找到它需要的所有可执行文件.

这是JAVA_HOME使用替代品的系统的正确值.大多数软件JAVA_HOME仅用于查找可执行文件,还是使用该值来查找与JDK捆绑在一起的其他工件(例如安全策略文件等)?如果是前者的话,我觉得我们可以使用/usrJAVA_HOME,但如果是后者,那么我想使用的唯一方法JAVA_HOME正确是通过牺牲的替代功能.

java java-home

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

使用ActionListener与MouseListener捕获JButton点击的优缺点

我有一个JButton,并希望捕获鼠标点击它.在JButton上使用ActionListener与使用MouseListener之间有什么实际和哲学上的区别?

java swing jbutton actionlistener mouselistener

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

为什么StringBuilder比StringBuffer慢?

这个例子中,StringBuffer实际上比StringBuilder更快,而我本来期望相反的结果.

这与JIT的优化有关吗?有谁知道为什么StringBuffer比StringBuilder更快,即使它的方法是同步的?

这是代码和基准测试结果:

public class StringOps {

    public static void main(String args[]) {

        long sConcatStart = System.nanoTime();
        String s = "";
        for(int i=0; i<1000; i++) {
            s += String.valueOf(i);
        }
        long sConcatEnd = System.nanoTime();

        long sBuffStart = System.nanoTime();
        StringBuffer buff = new StringBuffer();
        for(int i=0; i<1000; i++) {
            buff.append(i);
        }
        long sBuffEnd = System.nanoTime();

        long sBuilderStart = System.nanoTime();
        StringBuilder builder = new StringBuilder();
        for(int i=0; i<1000; i++) {
            builder.append(i);
        }
        long sBuilderEnd = System.nanoTime();

        System.out.println("Using + operator : …
Run Code Online (Sandbox Code Playgroud)

java stringbuilder stringbuffer

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

在Git中转义glob模式中的字符

以下git命令(删除以〜结尾的所有文件)使用转义字符

git rm \*~
Run Code Online (Sandbox Code Playgroud)

理由是,除了shell使用的扩展之外,git还使用它自己的文件名扩展.

这是否意味着转义字符是一种抑制shell完成文件名扩展的方法?

不知何故,我无法对此进行妥善处理.

  • 为什么git使用它自己的文件名扩展?是因为shell文件名扩展可以在不同的shell/OS中以不同的方式工作
  • 如果是这样,为什么不在git命令的shell级别禁止文件名扩展,并允许git用glob模式执行它自己的语义

git shell

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

使用Apache TomEE时,应用程序启动和配置的工作流程是什么

我知道Apache TomEE是一个常规的Tomcat安装,openejb是一个web应用程序.

我试图了解这一切是如何引导的.我会尝试提出几个有问题的问题:

  • 拥有应用程序启动顺序是否重要?应该在我的网络应用程序之前启动openejb,或者反过来,还是无所谓?
  • 与之前的问题有关.企业应用程序如何使用openejb注册它的bean,或者是openejb在同一服务器中搜索企业应用程序,对于EJB来说?
  • 在一个非常外行的层面上,当它是一个不同的Web应用程序时,他们如何能够提供openejb作为EJB容器.(IIRC Tomcat中的每个webapp都有不同的类路径,他们不能互相踩到脚趾)

任何其他重要信息.

java-ee openejb apache-tomee

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