我正在使用Jetty部署生产网站.让我们假设我的网站是foo.com当我将浏览器指向不存在的上下文(比如foo.com/notavailable)时,Jetty会显示一个错误页面,其中包含部署在其上的所有上下文的信息.
它看起来像这样:
此服务器上没有上下文匹配或处理此请求.此服务器已知的上下文是:
- / test ---> org.mortbay.jetty.webapp.WebAppContext@6910fe28 {/test,/root/webserver/jetty-6.1.4/webapps/test}
我想阻止Jetty显示此消息,因为它包含服务器上下文的完整路径.
有没有办法做到这一点?
我正在尝试在Java Swing应用程序中调试一些与焦点相关的问题.有些时候某些组件似乎正在抓住焦点,我无法弄清楚代码在哪里发生.
A VetoableChangeListener与KeyboardFocusManager(for focusOwner).这确实为我提供了有关哪些组件丢失并获得焦点的信息,但它无法帮助我确定代码中请求焦点的位置.
一个习惯KeyboardFocusManager.但在这方面我也只能在收到事件时进行干预.到那时,调用的调用栈requestFocus已经丢失.
一个习惯EventQueue.但是我也能够干预dispatchEvent从EDT再次调用的方法.调用堆栈再次丢失(有趣的postEvent(AWTEvent)是没有调用).
我正在寻找的是调用时的调用堆栈requestFocusInWindow.是否有可能获得此信息.也许,如果我可以重新定义用于发布事件的方法EventQueue,那么我可以打印堆栈转储.但是EventQueue.postEvent(AWTEvent)不会被调用.
任何人都可以建议一个解决方案,它可以帮助我在拨打requestFocus或requestFocusInWIndow可能已经拨打电话时获得筹码状态吗?
我试图通过运行来获取Netbeans IDE的源代码:
hg clone http://hg.netbeans.org/main/
然而,这似乎是永远的,它并没有给我任何状态,告诉我下载完成的百分比.如果失去我的互联网连接,我必须重新开始.
我意识到Mercurial是一个分布式源代码控制系统,也许'克隆'命令花了很长时间,因为它获取了所有文件的整个历史记录(这是正确的吗?)
当我们从CVS获取资源时,我们通常会获得没有整个历史记录的来源.是否可以使用Mercurial做这样的事情?
我正在使用Apache Wicket实现一个简单的降价维基.维基通常会根据用户输入的内容呈现任意HTML.
我对哪个Wicket组件最适合呈现这样的任意HTML感到困惑.
我尝试了Label组件,但它没有正确呈现列表,MultilineLabel(放置中断而不是常规列表HTML)也没有.
谢谢你的帮助.
更新: Label组件完美运行.我的错误是我无法让它早点上班.这是一些糟糕的样式表和深夜编码的组合.谢谢你的回答.正如所建议的那样,我还要查看一些WYSIWYG编辑器,这些编辑器实际上可能比降价更好.Visural Wicket似乎特别有前途.
我有一个Eclipse项目,它有两个源文件夹 - 'src'和'test'.我希望这两个文件夹的构建进入单独的输出文件夹.
其原因是,这两个文件夹中有一个名为ServiceProviders.properties的属性文件,该文件对代码的生产和试运行不同的值.
问题是,由于只有一个输出文件夹可以复制所有编译的类,因此不会复制'test'中的属性文件,因此我的测试代码会获得属性文件的生产版本.我想我试图模拟我们在Maven中使用不同类路径的方式(以及它们的查找顺序).
如果这不起作用,我将使用JVM属性来指定我可以在测试用例中使用的某些值.但是,它似乎不是一个优雅的解决方案.
使用Maven会使这个工作,但我不能在这个项目中使用Maven.
更新1:
谢谢你的答案.由于它们是相同的,我接受了之前发布的那个.
Upadte 2:
即使我可以为相应的源文件夹获取多个输出文件夹,但它并没有解决我在运行测试用例时从测试加载ServiceProviders.properties的原始问题,以及当我在服务器上运行应用程序时从src加载的问题. Eclispe的.我使用它的方法是使用测试文件夹中的ServiceProviders.properties文件创建一个单独的jar文件.在我的测试用例的运行配置中,我添加了这个jar文件并更改了顺序,因此它显示为查找的第一个依赖项.
确定正确的路径JAVA_HOME在Ubuntu系统上有点复杂,因为它使用了替代方案.在我的机器上,这是替代方案在到达实际的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捆绑在一起的其他工件(例如安全策略文件等)?如果是前者的话,我觉得我们可以使用/usr的JAVA_HOME,但如果是后者,那么我想使用的唯一方法JAVA_HOME正确是通过牺牲的替代功能.
我有一个JButton,并希望捕获鼠标点击它.在JButton上使用ActionListener与使用MouseListener之间有什么实际和哲学上的区别?
在这个例子中,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) 以下git命令(删除以〜结尾的所有文件)使用转义字符
git rm \*~
Run Code Online (Sandbox Code Playgroud)
理由是,除了shell使用的扩展之外,git还使用它自己的文件名扩展.
这是否意味着转义字符是一种抑制shell完成文件名扩展的方法?
不知何故,我无法对此进行妥善处理.
我知道Apache TomEE是一个常规的Tomcat安装,openejb是一个web应用程序.
我试图了解这一切是如何引导的.我会尝试提出几个有问题的问题:
任何其他重要信息.