小编noz*_*cle的帖子

自动启动JBoss服务(MBean)

我正在尝试构建一个应该在每次启动服务器时自动启动的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 service jboss mbeans java-ee

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

递归通用用法

编辑:“ 我从‘埃里克森’那里收到了一个非常相关的答案,但是有一个附带问题(向上转换?),这个问题没有在我的原始示例中明确涵盖,并且没有用他的答案解决。我已将示例扩展为涵盖了另一个问题,我已将其包含在本文末尾。感谢您的帮助。

我目前面临一个 Java 泛型问题,该问题与所谓的“奇怪的重复泛型模式”有关。我想在阅读 Jon Skeet 对这个问题“java enum定义”的答案后我已经找到了解决方案。尽管如此,当我尝试将其应用到我的代码中时,我发现自己遇到了不同的问题。

我想出了一个“小”例子,其中出现了我面临的问题。我希望它足够清楚地说明我的问题。

示例描述:我想构建一个节点类型可以变化的图表。我定义了一个抽象类Node,它定义了一些基本方法,以及一个实现这些方法的具体类,即ConcreteNode。我还创建了一个名为City的 ConcreteNode 专业化。

在给定的图中,一个重要的要求是所有元素应由其相同类型或子类型组成,即ConcreteNode 图中只能有ConcreteNodesCities。

这些是我的类的定义:

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 的方法签名中看出:

  1. addNewNeighbors1a使用原始类型 Node,但至少它可以工作。
  2. addNewNeighbors1b使用 Node 类型,但它根本无法编译(错误包含在代码中)。
  3. addNewNeighbors1c对 Node 使用了一个更复杂的参数,我希望它可以工作,但它无法编译(错误包含在代码中)。
  4. addNewNeighbors3对 Node 使用了复杂的参数,但它不会再次编译,即使 Node 和 newNode 的参数相同。

综上,我的问题是如何向上转换这些自身参数化的泛型类型?

我将非常高兴获得关于 …

java generics

5
推荐指数
1
解决办法
5641
查看次数

Applescript和iCal互动

我正在尝试编写一个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可能改进了可用的操作库.

icalendar applescript

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

标签 统计

java ×2

applescript ×1

generics ×1

icalendar ×1

java-ee ×1

jboss ×1

mbeans ×1

service ×1