web app和依赖jar转移到Tomcat 6 lib目录,logback找不到配置文件

我在Tomcat 6上安装了一个Java 6应用程序。应用程序jar文件和依赖jar文件存在于我的webapps / myapp / WEB-INF / lib目录中,而我的logback配置文件存在于webapps / myapp / WEB-INF / classes中。 该应用程序是唯一一个在tomcat实例中运行的应用程序,我们一次运行大约一百个实例。 服务器管理团队决定应用程序和依赖库是冗余的,并将它们移动到tomcat / lib。 首先,他们将myapp.jar移动到tomcat / lib。 这导致了一个例外: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 这有点奇怪,因为,如果有的话,我会期望它尝试加载我的应用程序失败。 相反,似乎从tomcat / lib中的jar加载应用程序已经改变了类加载器的路径。 我认为web应用程序目录,当然还有WEB-INF / web.xml,会将类加载器“锚定”到应用程序目录。 似乎并非如此。 当这不起作用时,管理团队将所有其余的依赖库移动到tomcat / lib目录。 现在应用程序启动,找到它的配置属性文件等,但找不到logback.xml文件(在WEB-INF / classes / logback.xml中)。 同样,这表明类加载器环境中的某些事情发生了重大变化。 最重要的结果是,如果我在WEB-INF / […]

使用plexus-compiler-eclipse进行编译时无法解析导入org.omg .CORBA

我们的项目是在jdk 1.7.0_17上使用maven开发的,因为我在我的代码中导入了org.omg.CORBA.IntHolder然后运行“mvn clean install”它给了我错误“导入org.omg .CORBA无法解析” 我不知道为什么,我可以在%JAVA_HOME%\ jre \ lib \ rt.jar中找到无法解析的类文件 我的pom文件配置如下: org.apache.maven.plugins maven-compiler-plugin 3.1 eclipse 1.7 1.7 1.7 true org.codehaus.plexus plexus-compiler-eclipse 2.2 有没有人之前注意过这个问题? 对此的任何解决方案或想法都将表示感谢。

在不使用modal dialog的情况下阻止Swing输入

我想阻止对窗口的输入,但仍然可以移动它。 如果有一个modal dialog类型允许产生它的窗口移动,那么我会很高兴。 假设我有一个窗口打开另一个窗口。 然后第二个窗口打开一个modal dialog,它阻止输入到另外两个窗口(很好),但也锁定这两个窗口(为什么 – Amigas没有这样做:)?)。 我的问题是我可能需要在第一个窗口中以可视方式读取内容以供在对话框中使用,但这可能无法实现,因为第二个窗口已锁定到位,覆盖它。 我想,我几乎用玻璃窗解决了这个问题。 我将下面的类设置为我窗口的根窗格的玻璃窗格,然后当我想要阻止时调用setVisible(true),当我想解锁窗口时调用setVisible(false)。 锁定时,窗口会变灰以指示此情况。 鼠标输入被阻止,除了关闭窗口,现在很好 – 问题是我仍然可以在被阻止的窗口上的组件周围进行选项卡,如果我找到一个可编辑的窗口,我可以使用键盘编辑它,无论我的是什么空KeyListener。 有没有一种简单的方法可以防止玻璃窗格后面的组件获得焦点? 我希望它可以在“InputSink”类本身上完成。 我已经尝试添加自己的自私焦点遍历策略并在可见时请求焦点,但这没有任何效果。 我还尝试了一个我发现添加了FocusListener的示例,如果玻璃窗格可见,其focusLost方法会请求焦点,但这样做太过分了,因为窗口始终保持在前面。 有人知道这两个极端之间的解决方案吗? 这就是我所拥有的: import java.awt.Color; import java.awt.Component; import java.awt.Container; import java.awt.FocusTraversalPolicy; import java.awt.Graphics; import java.awt.Rectangle; import java.awt.event.KeyAdapter; import java.awt.event.MouseAdapter; import javax.swing.JPanel; public class InputSink extends JPanel { public InputSink() { this(0.2f); //Default opacity. } public InputSink(float alpha) […]

当用户单击Struts2 jquery网格的删除按钮时,卡在获取特定行的id

我正在使用Jquery Grid在struts 2中开发一个小应用程序来显示数据结果。 当我单击编辑按钮时,特定的行ID即将到来。 但是,当我单击删除按钮删除该行时,其ID不会出现。 使用所选行(Struts2 Jquery Grid)执行删除操作时如何获取行的id? Plz帮我这个。 myJspFile.jsp Hello World @import url(/css/style1.css); MyActionClass.java /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package v.esoft.actions.subjectdetails; import com.opensymphony.xwork2.ActionSupport; import java.text.SimpleDateFormat; import com.opensymphony.xwork2.ModelDriven; import v.esoft.dao.SubjectdetailsDAO.SubjectdetailsDAO; import v.esoft.pojos.Subjectdetails; public class SubjectdetailsEditAction extends ActionSupport implements ModelDriven { private […]

在Eclipse中,如何在Java String中获取SQL文本?

我在Java String中有一个很长的SQL语句。 在eclipse中,如何在没有Java String语法的情况下轻松获取SQL语句的文本? 我一直在手动删除它,但是在IntelliJ Idea中,有一个人可以获取文本而无需进行任何手动格式化工作来删除Java String语法(例如”和+字符”).Eclipse是否具有类似的function? 作为一个额外的好处,我会问,是否也可以使用在IDE中格式化的换行符来获取字符串,即使字符串本身没有\n字符。

定期数据库批量插入的Java并发

场景:每秒调用一个线程数千次,以便对同一个表进行插入,并且当前正在逐个执行这些操作。 目标:定期进行批量插入以提高性能。 当线程的saveItem方法被调用时,尝试使用TimerTask来将保存的对象添加到列表中,然后每隔2秒左右将它们组合成批量插入。 首先想到的是有两个列表,称之为toSave和toSaveBackup 。 当调用线程的saveItem方法来保存它时,它将被添加到toSave列表中,但是一旦TimerTask启动并需要将所有内容保存到数据库,它就会将AtomicBoolean标志saveInProgress设置为true。 saveItem检查此标志,如果saveInProgress为true,它将添加到toSaveBackup而不是toSave。 批量保存完成后,toSaveBackup中的所有项目都将移动到toSave列表,可能是列表上的同步块。 这是一种合理的方法吗? 还是有更好的最佳做法? 我的谷歌搜索技能让我失望,所以欢迎任何帮助。 其他信息: 所有这些插入都在同一个表中 插入是通过接收MQTT消息来驱动的,因此在此之前我无法将它们组合在一起 更新:对CKing以下答案的调整达到了预期的方法:TimerTask每100毫秒运行一次并检查saveQueue的大小以及自批量保存以来的时间。 如果这些值中的任何一个超过配置的限制(每2秒或每1000条记录保存等),我们就会保存。 LinkedBlockingQueue用于简化同步。 再次感谢大家的帮助!

动态可扩展的JVM堆栈

JVM规范表明JVM堆栈可以是固定大小,也可以是动态可扩展的。 -Xss JVM选项允许设置固定大小,如果我没有设置此选项是设置默认值(大约512-2048k),但是如何告诉JVM在需要时动态分配其堆栈? 如果我不能设置动态大小选项,设置一个大的-Xss值(假设20M)实际上为我的JVM中的每个线程分配20MB的内存,还是动态分配的内存将限制为20MB?

java中的方法参考

我正在探索java中的方法引用,并且好奇是否可以将以下内容转换为方法引用 List list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8); list.forEach(item -> new SomeClass(item).someMethod(item)); 我尝试了以下,但这不起作用 list.forEach(SomeClass::new::someMethod);

通过JSONObject递归解析JSON以获取特定键的值

我有一个复杂的JSON,我需要递归解析。 递归的最终结果是Map> object of object,其中key是audience – name值,内部映射是Text-key,Title-value。 这只是完整JSON的一部分。 “sections”: { “1”: { “1”: { “1”: { “title”: “xxx”, “text”: “xxx”, “tags”: { “audience”: { “1”: { “name”: “xxx”, “title”: “xxx”, “id”: “xxx” } }, “styleHint”: { “1”: { “name”: “xxx”, “title”: “xxx”, “id”: “xxx” } } } }, “title”: “xxx”, “text”: “xxx”, “tags”: { “audience”: […]

Android:让屏幕“闪烁”白色

我想暂时让我的安卓屏幕“闪烁”白色(只有一次)。 它需要足够长,以便用户能够告诉屏幕确实变成了白色。 用户将降落在屏幕上,该屏幕将在5秒后闪烁白色,然后再次显示原始屏幕(可能从白色褪色)。 最好的方法是什么? 现在我正在创建一个占据整个屏幕并以编程方式显示和隐藏它的矩形。