Tag: 启动

@Singleton @Startup完全异步?

我一起使用@Singleton和@Startup注释来创建一个长时间运行的进程。 通过使用这些注释,我可以安全地假设我的进程将是一个完全异步运行的单个线程吗?

如何在Struts 2中使用DispatcherListener

Struts2中有一个接口DispatcherListener 。 文档说 “用于标记那些想要在init上执行代码并destroy Dispatcher的接口的接口。” 但是如何使用这个界面。 如果我创建一个实现此接口的类,我应该如何配置它到Struts2?

启动Applet失败了吗?

我正在尝试使用代码从applet中启动applet: Class applet2 = Class.forName(PostAccess); Applet appletToLoad = (Applet)applet2.newInstance(); appletToLoad.setStub(this); setLayout( new GridLayout(1,0)); add(appletToLoad); appletToLoad.init(); appletToLoad.start(); 但是,这会引发错误: Exception in thread “AWT-EventQueue-0” java.lang.RuntimeException: Uncompilable source code – Erroneous tree type: at javaapplication1.MainApplet.jButton1ActionPerformed(MainApplet.java:204) at javaapplication1.MainApplet.access$100(MainApplet.java:34) at javaapplication1.MainApplet$2.actionPerformed(MainApplet.java:68) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6505) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6270) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) […]

如何设置JDI启动连接器?

所以我正在尝试自己进入JDI。 通过首先使用VM命令启动调试对象,我已经成功将调试器应用程序挂接到我的debugee程序中: -agentlib:jdwp=transport=dt_socket,server=y,address=8000 然后启动我的调试器,通过使用附加连接器建立连接: VirtualMachineManager vmm = Bootstrap.virtualMachineManager(); AttachingConnector ac = vmm.attachingConnectors().get(0); Map env = ac.defaultArguments(); env.get(“port”).setValue(“8000”); env.get(“hostname”).setValue(“localhost”); VirtualMachine vm = ac.attach(env); 但现在我希望我的调试器应用程序启动调试对象程序本身。 我知道在这种情况下必须使用启动连接器。 所以我尝试了这个: VirtualMachineManager vmm = Bootstrap.virtualMachineManager(); LaunchingConnector lc = vmm.launchingConnectors().get(0); Map env = lc.defaultArguments(); env.get(“main”).setValue(“p.DebugDummy”); env.get(“suspend”).setValue(“true”); env.get(“home”).setValue(“C:/Program Files/Java/jdk1.7.0_51”); VirtualMachine vm = lc.launch(env); 但是,当我启动这个应用程序时,我的debugee程序没有启动。 我没有例外或任何事情,尽管上面的代码有一堆后续代码; 像: // A single implementor of this interface […]

在Eclipse中,如何获得相对于项目的启动配置?

我通常有一个项目的多个副本,例如:主干的副本和最后一个发布分支的另一个副本。 为了将我的项目文件与Eclipse完全分离,它们将从Eclipse工作区外部的目录中的Subversion中检出。 我想让项目可以轻松导入Eclipse并遵循多个 答案的说明 。 问题是我的.launch文件的项目名称是硬编码的。 导入新项目时,只要项目与导出的项目具有完全相同的名称,启动文件就会显示在“运行配置”菜单中。 这禁止我有同一个项目的两个版本。 看起来这样做的唯一方法是从Ant任务生成.launch和.project文件,但我没有看到有人使用此解决方案。 也许我应该有多个工作区,项目总是具有相同的名称。 最好的方法是什么? 编辑:我将VonC标记为答案,但不要错过评论。

在jira中使用jaxb api失败的java类:提供者com.sun.xml.bind.v2.ContextFactory未找到

我正在为Jira编写一个插件,它涉及解析XML文档。 我正在使用JAXB这样做(XML to pojos,反之亦然)所以有一个类使用JAXB从pojos生成XML。 看起来像… import javax.xml.bind.*; Class Parser { public void m1() { … // code which uses classes in javax.xml.bind.* } public static void main(String args[]){ Parser p=new Parser(); p.m1(); } } 提到的包将随JDK发行版(rt.jar)一起提供。 所以我还没有做任何其他的事情去上课。 当我使用’java’从命令行启动它时,它正常工作。 但是,当我把它打包成一个jar子并把它作为插件放在Jira中时它失败并出现以下错误 javax.xml.bind.JAXBException: Provider com.sun.xml.bind.v2.ContextFactory not found – with linked exception: [java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory] at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:152) at javax.xml.bind.ContextFinder.find(ContextFinder.java:299) at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:372) […]

在OS启动时自动运行Java应用程序

我需要一些启动Java应用程序的方法,而不必强制用户手动运行应用程序。 我不完全确定我会怎么做,任何人都可以提供任何帮助吗?

为什么更多请求转到新(动态)实例而不是驻留实例?

在App Engine标准环境中使用自动扩展的Java应用程序。 现在,缩放配置如下: F2 1 2 2000ms 8000ms 60 刚刚开始尝试F2实例,之前正在使用F1实例。 无论我如何配置自动缩放,似乎新创建的实例(在负载增加时创建)开始获取所有传入请求,而驻留实例的负载非常轻。 为什么是这样? 当然,我无法实时监控流量(以及它去哪个实例),但每次看起来故事都是一样的。 我在下面提供了一些示例截图。 在下面的例子中,三个实例(这与上面的配置略有不同)是免费的,但GAE的负载均衡器选择将所有请求发送到具有最高延迟的实例! 还有一个例子:这是今天上午10:15:45开始的驻留实例的请求日志: 以及10秒后启动的动态实例的请求日志: 正如您所看到的那样,动态实例正在处理所有请求(到目前为止为1889年),而驻留者基本上处于空闲状态(在同一时间段内为7)。 如果不是因为驻留实例似乎被破坏并且在创建 新动态实例的时候 重新创建 ,那么这仍然可以。 这意味着一分钟左右的所有请求都会看到10-20秒的响应时间。 有人可以向我解释如何配置? 这就是我想要的: 一个空闲实例应该能够在大多数时间处理负载(现在)。 当有更多请求进入时,请启动其他实例。 准备就绪后 ,开始将流量转移到它。 我试图在预算不足的情况下运行一个合理负载的网站,所以我尽量保持尽可能接近免费配额是很重要的。 更新1 由于两个答案都突出地讨论了热身请求,我想我会在这里列出有关它的详细信息。 我正在使用ServletContextListener来处理初始化。 它执行以下操作(使用Guava的Stopwatch类收集时间,并且是我编写的代码/显式调用的代码): 注册Objectify实体(1.449 s) Freemarker init 229 ms Firebase init 228.2 ms 除了我有Shirofilter,Objectifyfilter和泽西filter(在泽西岛我通过显式注册类而不是给它一个扫描包来避免类路径扫描(我认为))在我的web.xml配置。 不使用任何dependency injection来避免类路径扫描。 /_ah/warmup请求需要7.8s(从上面的时间开始)。 但是,一个刚刚启动的动态实例提供服务的请求需要10秒多才能完成,尽管这些相同的调用在两分钟后需要200-700毫秒。 那么除了我在StartupListener明确做的事情之外,后台还有什么呢? 这是日志的第1部分 ,这是日志的第2部分 。

Java EE企业应用程序:在部署/启动时执行一些操作

我希望在部署了我的应用程序(使用业务逻辑,EJB和客户端,Web的企业应用程序)后执行某些操作。 例如,我想让一些实体处于持久状态,或者创建一个文件。 我怎样才能做到这一点? 谢谢。

如何在发布之前检查JRE版本?

确定计算机上安装的JRE版本是否足以满足用户想要运行的应用程序的最佳方法是什么? 有没有办法使用java-only的东西呢? 我希望该解决方案适用于Windows / Linux / MacOSX – 如果JRE版本太低,则应显示消息。 目前,如果我尝试在Java 1.5上运行它(该应用程序是为Java 1.6构建的),我会遇到exception。 如果没有通用解决方案,那么在Windows上执行此操作的最佳方法是什么?