【发布时间】:2019-01-22 13:43:42
【问题描述】:
在 jboss 中部署 jPOS 或在 jboss 中启动 jPOS Q2。即启动 jPOS 服务器作为 jboss 应用服务器的内部功能(现在是 wildfly)
【问题讨论】:
标签: jpos
在 jboss 中部署 jPOS 或在 jboss 中启动 jPOS Q2。即启动 jPOS 服务器作为 jboss 应用服务器的内部功能(现在是 wildfly)
【问题讨论】:
标签: jpos
在 jboss 中启动 jpos Q2 的分步过程
创建一个名为 q2mbean-1.0.sar 的 .sar 文件来启动队列。
将创建的 .sar 文件放入 .ear 文件 (jposQ.ear)。
因此现在的路径是 jposQ.ear/Q2mbean-1.0.sar。
将.ear文件放在jboss的deploy目录下
SAR 创建:
创建的 .sar 文件应包含名为 Q2Service.class 的类文件 因此,Q2Service.class 文件应该位于 q2mbean-1.0.sar\org\jpos\mbean 下面给出的目录中。 Q2Service.java 是
> package org.jpos.mbean; > > import javax.management.*; import org.jboss.logging.Logger; import > org.jboss.system.ServiceMBeanSupport; import org.jpos.q2.Q2; > > // Referenced classes of package org.jpos.mbean: // > Q2ServiceMBean > > public class Q2Service extends ServiceMBeanSupport implements > Q2ServiceMBean, Runnable { > > public Q2Service() > { > q2Server = null; > } > > protected void startService() > throws Exception > { > super.startService(); > super.log.info("Q2Service starting"); > String deployPath[] = { > "-d", "q2/deploy" > }; > q2Server = new Q2(deployPath); > (new Thread(this)).start(); > } > > public void run() > { > try > { > q2Server.start(); > } > catch(MalformedObjectNameException e) { e.printStackTrace(); } > catch(InstanceAlreadyExistsException e) { e.printStackTrace(); } > catch(NotCompliantMBeanException e) { e.printStackTrace(); } > catch(MBeanRegistrationException e) { e.printStackTrace(); } > } > protected void stopService() > throws Exception > { > super.stopService(); > super.log.info("Q2Service stopping"); > q2Server.shutdown(); > } > private Q2 q2Server; }
.sar 文件还有一个名为 Q2ServiceMBean.class 的接口。 Q2ServiceMBean.java 是
package org.jpos.mbean;
import org.jboss.system.ServiceMBean;
public interface Q2ServiceMBean extends ServiceMBean
{
}
应该在目录 q2mbean-1.0.sar\META-INF\ jboss-service.xml 中创建名为 (jboss-service.xml) 的 xml 文件。
xml 表示 sar 的类路径:
<?xml version="1.0" encoding="UTF-8" ?>
<service>
<mbean code="org.jpos.mbean.Q2Service" name="Q2:name=Q2Service">
</mbean>
</service>
耳朵创作:
你的耳朵应该以一个名为 application.xml 的 xml 文件开头,它应该在 jposQ.ear\META-INF\application.xml 中
以同样的方式创建另一个 xml 文件,即 jposQ.ear\META-INF\jboss-app.xml 中的 jboss-app.xml
应用程序.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<application xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd" version="1.4">
<display-name>JBossAtWorkEAR</display-name>
<module>
<java>jpos.jar</java>
</module>
</application>
jboss-app.xml
<?xml version="1.0" encoding="UTF-8" ?>
<jboss-app>
<loader-repository>myapp:archive=jposQ.ear</loader-repository>
<module>
<service>q2mbean-1.0.sar</service>
</module>
</jboss-app>
那么 Ear 文件应该有以下文件 q2mbean-1.0.sar, jpos.jar 包括从 jpos 到 ear 的 lib 目录。 将 jpos 中的 deploy 文件夹放在 jboss-x.x.x/bin/q2/deploy 将日志文件夹和文件放在jboss-x.x.x/bin/log中
在此处找到 sar 文件:http://jpos.org/download/q2mbean-1.0.sar
【讨论】: