我正在尝试构建一个应该在每次启动服务器时自动启动的JBoss服务.
我的服务有以下类结构:
public interface CumbiaXPMServiceMBean extends org.jboss.system.ServiceMBean
public class CumbiaXPMService extends org.jboss.system.ServiceMBeanSupport implements CumbiaXPMServiceMBean
Run Code Online (Sandbox Code Playgroud)
我还为我的服务获得了以下配置文件 - jboss-service.xml:
<server>
<mbean code="uniandes.cumbia.xpm.jboss.CumbiaXPMService"
name="jcumbia:service=JCumbiaEngine">
<depends>jcumbia:service=cumbiaConsole</depends>
<attribute name="LocationInCumbia" attributeClass="java.lang.String">XPMEngine</attribute>
</mbean>
</server>
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何自动启动此服务?
我希望JBoss将方法start()作为加载过程的一部分调用,但它不是:我的start()方法中有很多loggin代码,但我没有看到任何输出.
但是,当我使用JMXConsole查看MBean状态时,其状态(StateString)为"已启动".
问题解决了
我找到了解决问题的方法.我重写了方法start(),stop(),destroy()和create(); 尽管如此,因为我正在扩展抽象类ServiceMBeanSupport,所以我应该重写方法startService(),stopService()等.
我只是提出我的代码的方法start()方法的方法startService(),现在我需要的一切都表现:只要是满足其依赖性,我的服务已启动并执行方法startService().
我想得出的结论是:虽然一个MBean的生命周期涉及调用创建(),启动(),停止()和destroy(),抽象类ServiceMBeanSupport的实现使用这些方法来处理生命周期.然而,它提供受保护的方法*Service()以允许程序员参与生命周期.
编辑:“ 我从‘埃里克森’那里收到了一个非常相关的答案,但是有一个附带问题(向上转换?),这个问题没有在我的原始示例中明确涵盖,并且没有用他的答案解决。我已将示例扩展为涵盖了另一个问题,我已将其包含在本文末尾。感谢您的帮助。
我目前面临一个 Java 泛型问题,该问题与所谓的“奇怪的重复泛型模式”有关。我想在阅读 Jon Skeet 对这个问题“java enum定义”的答案后我已经找到了解决方案。尽管如此,当我尝试将其应用到我的代码中时,我发现自己遇到了不同的问题。
我想出了一个“小”例子,其中出现了我面临的问题。我希望它足够清楚地说明我的问题。
示例描述:我想构建一个节点类型可以变化的图表。我定义了一个抽象类Node,它定义了一些基本方法,以及一个实现这些方法的具体类,即ConcreteNode。我还创建了一个名为City的 ConcreteNode 专业化。
在给定的图中,一个重要的要求是所有元素应由其相同类型或子类型组成,即ConcreteNode 图中只能有ConcreteNodes或Cities。
这些是我的类的定义:
abstract class Node<T extends Node<T>>
class ConcreteNode<T extends ConcreteNode<T>> extends Node<T>
class City extends ConcreteNode<City>
Run Code Online (Sandbox Code Playgroud)
这些定义使用了在 Enum 类的定义中也可以找到的“重复通用模式”:
Class Enum<E extends Enum<E>>
Run Code Online (Sandbox Code Playgroud)
问题:我在使用这些类时遇到问题。如果我必须停留在层次结构中的城市级别,即连接城市到城市,我不会有问题,但在尝试访问其他类时我遇到了巨大的问题。
在下面的代码中,我的问题可以从 GraphUtil 的方法签名中看出:
综上,我的问题是如何向上转换这些自身参数化的泛型类型?。
我将非常高兴获得关于 …
我正在尝试编写一个AppleScript来查询iCal,并在任何日历中查找我在给定日期获得的所有事件.
我首先编写了一个简单的脚本,它可以对给定日历中的每个事件执行简单的操作:
tell application "iCal"
tell calendar "Reuniones"
set the_events to every event
repeat with an_event in the_events
-- do something with every event
set value to summary of an_event
end repeat
end tell
end tell
Run Code Online (Sandbox Code Playgroud)
但是,这个简单的脚本需要花费很多时间来执行(几秒钟),即使我在循环中没有做任何复杂的事情.我担心真正的脚本会花费很多时间来执行.
我对Applescript不太熟悉,因此我想我正在做一些具有严重性能影响的傻事.
任何人都可以解释为什么这需要那么多来执行?任何人都可以建议改进我的代码吗?我现在要开始检查事件的日期,循环中有一个条件.我怀疑必须有一种方法来搜索带有日期的事件(比如Automator动作),但是我无法找到一种"原生"方式来做到这一点....
编辑:我正在使用Mac OS X Tiger(10.4).新版本的iCal可能改进了可用的操作库.