如何在 JBoss AS 7 中使用 Service Archive SAR 文件

在 JBoss AS 7 之前的版本中使用 SAR 时,你需要一个 extends 了 org.jboss.system.ServiceMBeanSupport 并 implements org.jboss.system.ServiceMBean 的类。但在 JBoss AS 7 中,这两者都不存在了。

在 JBoss AS 7 中实现一个 MBean 你只需要一个实现了自定义接口的类。jboss-service.xml 中的配置和过去相同,但是必须制定 XML Schema,否则会有如下的异常:

<!-- lang: shell -->
23:10:52,007 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC00001: Failed to start service jboss.deployment.unit."ServerMonitorService.sar".PARSE: org.jboss.msc.service.StartException in service jboss.deployment.unit."ServerMonitorService.sar".PARSE: Failed to process phase PARSE of deployment "ServerMonitorService.sar"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:121)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765)
at org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_21]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_21]
at java.lang.Thread.run(Thread.java:619) [:1.6.0_21]

Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: Failed to parse service xml [“/home/userone/jboss-as-7.0.1.Final/standalone/deployments/ServerMonitorService.sar/META-INF/jboss-service.xml”]

at org.jboss.as.service.ServiceDeploymentParsingProcessor.deploy(ServiceDeploymentParsingProcessor.java:94)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115)
... 5 more

Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[3,1]
Message: Unexpected element 'server'

at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:98)
at org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:59)
at org.jboss.as.service.ServiceDeploymentParsingProcessor.deploy(ServiceDeploymentParsingProcessor.java:87)

JBoss AS 7 中 jboss-service.xml 配置示例:


<?xml version="1.0" encoding="UTF-8"?>
<server xmlns="urn:jboss:service:7.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:jboss:service:7.0 jboss-service_7_0.xsd">
    <mbean code="custom.mbean.MyServerMonitor" name="service.server.monitor:service=MyMonitor">
        <attribute name="Frequency">5000</attribute>
    </mbean>
</server>

你可能感兴趣的:(如何在 JBoss AS 7 中使用 Service Archive SAR 文件)