Module 如何在jboss7启动时执行jar文件?
我有一个简单的java类,它在“TMSCore”java项目中显示执行时的“等待”文本Module 如何在jboss7启动时执行jar文件?,module,jboss7.x,Module,Jboss7.x,我有一个简单的java类,它在“TMSCore”java项目中显示执行时的“等待”文本 package com.stock.bo; public class example { /** * @param args */ public static void main(String[] args) { // ApplicationContext context = new ClassPathX
package com.stock.bo;
public class example {
/**
* @param args
*/
public static void main(String[] args) {
// ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
System.out.println("================================> waiting");
}
}
我已经创建了TMSCore.jar,并将这个example.class设置为jar文件的入口点
然后我在C:\Jboss\Jboss-as-7.1.1\modules\org\tms\main中为这个项目创建了一个模块,并将jar粘贴到相同的路径中
然后我创建了module.xml并粘贴到相同的路径中
module.xml
然后,我在我的webproject/web inf目录中创建了一个jboss-deployment-structure.xml
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="org.tms"/>
</dependencies>
</deployment>
</jboss-deployment-structure>
当我用上面包含jboss-deployment-structure.xml的war启动服务器时,在控制台中,它会显示已部署的TMSCore.jar
但我的jar中的“等待”文本并没有显示在控制台上
我的要求是,一旦jboss启动,我应该在我的控制台上获得“===============================>等待”
或者有人能建议如何在启动jboss服务器时执行jar吗
顺便说一句,我使用的是JBOSS7.1如果我是对的,那是因为JBoss不执行库,它只加载
jar
文件中包含的类。因此,放置一个主函数并生成一个可执行的jar
将没有帮助
如果您的目标是在服务器上有一个全局模块,我建议您进行以下修改:
jboss deployment structure.xml
中将其声明为依赖项(正如您已经做的那样)standalone.xml
并修改该部分:
示例
类的实例:
公共类示例{
//唯一的一个例子
私有静态示例实例;
//私有构造函数以避免创建此类的其他实例
私人示例()
{
System.out.println(“等待”);
}
公共静态示例getInstance()
{
if(实例==null)
{
实例=新示例();
}
返回实例;
}
}
然后在服务器上的所有项目中使用它
Example ex=Example.getInstance();
将返回现有实例(或第一次创建一个)
注意:我无法尝试,因此不能保证这会起作用
编辑:可能对
示例
类稍作修改也可以使其在类加载期间运行:
公共类示例{
//唯一的一个例子
私有静态示例实例=新示例();
//私有构造函数以避免创建此类的其他实例
私人示例()
{
System.out.println(“等待”);
}
公共静态示例getInstance()
{
返回实例;
}
}
再次声明:未测试。如果我是对的,那是因为JBoss不执行库,它只加载
jar
文件中包含的类。因此,放置一个主函数并生成一个可执行的jar
将没有帮助
如果您的目标是在服务器上有一个全局模块,我建议您进行以下修改:
jboss deployment structure.xml
中将其声明为依赖项(正如您已经做的那样)standalone.xml
并修改该部分:
示例
类的实例:
公共类示例{
//唯一的一个例子
私有静态示例实例;
//私有构造函数以避免创建此类的其他实例
私人示例()
{
System.out.println(“等待”);
}
公共静态示例getInstance()
{
if(实例==null)
{
实例=新示例();
}
返回实例;
}
}
然后在服务器上的所有项目中使用它
Example ex=Example.getInstance();
将返回现有实例(或第一次创建一个)
注意:我无法尝试,因此不能保证这会起作用
编辑:可能对
示例
类稍作修改也可以使其在类加载期间运行:
公共类示例{
//唯一的一个例子
私有静态示例实例=新示例();
//私有构造函数以避免创建此类的其他实例
私人示例()
{
System.out.println(“等待”);
}
公共静态示例getInstance()
{
返回实例;
}
}
同样:未测试。您不能运行jar,但可以在单例中执行启动方法
@Startup
@Singleton
public class FooBean {
@PostConstruct
void atStartup() { ... }
@PreDestroy
void atShutdown() { ... }
}
这将在应用程序启动和关闭时发生。我会从那里调用你需要的函数
请参见您不能运行jar,但可以在单例中执行启动方法
@Startup
@Singleton
public class FooBean {
@PostConstruct
void atStartup() { ... }
@PreDestroy
void atShutdown() { ... }
}
这将在应用程序启动和关闭时发生。我会从那里调用你需要的函数
看