或者能执行main方法也行,也能达到效果
再或者用jsp页面执行一个jar文件也可以··不知道这样行不行··
高手指点一二··
18 个解决方案
#1
放到WEB。XML加载吧。。。应该和JBOSS一样的。。
#2
JSP调JAR这个说话太不专来了吧。。
#3
JSP调JAR这个说话太不专业来了吧。。
#4
改下[tomcat]/bin/startup.bat,在里面加两行代码就行了么!
#5
写个监听器就好了,容器启动的时候就执行
#6
同意4楼
#7
startup.bat文件中启动或者写个servlet类,然后load-on-startup配置一下在类里用利用runtime启动
或者你在自己写一个bat文件,启动tomcat和jar。
或者你在自己写一个bat文件,启动tomcat和jar。
#8
都行
#9
跟着项目启动不行吗?
比如在servlet启动的时候定义一个init-param
类似:
<init-param>
<param-name>otherApp</...>
<param-value>package.a.b.c.OtherApp</...>
</...>
然后在servlet的init方法里
用函数(好像叫getInitParameter,lz自己google一下吧)
把“package.a.b.c.OtherApp”读出来,
然后用Class.forName(),newInstance之类的方法来实例化一个类,
然后就想干什么干什么了。
good luck
比如在servlet启动的时候定义一个init-param
类似:
<init-param>
<param-name>otherApp</...>
<param-value>package.a.b.c.OtherApp</...>
</...>
然后在servlet的init方法里
用函数(好像叫getInitParameter,lz自己google一下吧)
把“package.a.b.c.OtherApp”读出来,
然后用Class.forName(),newInstance之类的方法来实例化一个类,
然后就想干什么干什么了。
good luck
#10
这个还靠谱一些···
用servlet我也会··
但是现在没法用···
#11
恩,用监听器。我用的就是这个。
#12
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class SerialPortListener implements ServletContextListener {
private Log log = LogFactory.getLog(SerialPortListener.class);
public void contextInitialized(ServletContextEvent arg0) {
if (ResetDatabase.checkDBExist()){
int eqListSize = CommonDataUnit.getEquiList().size();
if (eqListSize > 0){
// 波特率
int baudRateNo = Integer.parseInt(CommonDataUnit.getSysArgsByKey(BeanForSysArgs.BAUDRATE_NUMBER));
// 刷新时间( 单位为秒)
int flashTime = Integer.parseInt(CommonDataUnit.getSysArgsByKey(BeanForSysArgs.DATA_FLASHTIME));
// 3: 测试串口是否可用
Level_First_Serial first_Level = Level_First_Serial.getInstance();
if (first_Level.initForTempHumi(baudRateNo, flashTime) == 1){
log.info("程序启动串口正常...");
first_Level.beginTask(); // 开始运行串口
}else{
log.info("程序无法启动串口.原因:无法连接串口...");
}
}else{
log.info("程序无法启动串口.原因:没有发现仪器列表...");
}
}
}
public void contextDestroyed(ServletContextEvent arg0) {
if (ResetDatabase.checkDBExist()){
Level_First_Serial.getInstance().endTask();
Level_First_Serial.getInstance().clearBarData();
log.info("程序已经关闭串口连接...");
}
}
}
import javax.servlet.ServletContextListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class SerialPortListener implements ServletContextListener {
private Log log = LogFactory.getLog(SerialPortListener.class);
public void contextInitialized(ServletContextEvent arg0) {
if (ResetDatabase.checkDBExist()){
int eqListSize = CommonDataUnit.getEquiList().size();
if (eqListSize > 0){
// 波特率
int baudRateNo = Integer.parseInt(CommonDataUnit.getSysArgsByKey(BeanForSysArgs.BAUDRATE_NUMBER));
// 刷新时间( 单位为秒)
int flashTime = Integer.parseInt(CommonDataUnit.getSysArgsByKey(BeanForSysArgs.DATA_FLASHTIME));
// 3: 测试串口是否可用
Level_First_Serial first_Level = Level_First_Serial.getInstance();
if (first_Level.initForTempHumi(baudRateNo, flashTime) == 1){
log.info("程序启动串口正常...");
first_Level.beginTask(); // 开始运行串口
}else{
log.info("程序无法启动串口.原因:无法连接串口...");
}
}else{
log.info("程序无法启动串口.原因:没有发现仪器列表...");
}
}
}
public void contextDestroyed(ServletContextEvent arg0) {
if (ResetDatabase.checkDBExist()){
Level_First_Serial.getInstance().endTask();
Level_First_Serial.getInstance().clearBarData();
log.info("程序已经关闭串口连接...");
}
}
}
#13
web.xml中加入
<listener>
<listener-class>com.htc.listener.SerialPortListener</listener-class>
</listener>
<listener>
<listener-class>com.htc.listener.SerialPortListener</listener-class>
</listener>
#14
嗯,这样可以。
或者自己写个servlet,配置到web.xml里面让启动时执行,servlet去调用那个main
#15
你要在服务端的 tomcat 启动执行一个独立的应用程序干嘛?有啥意义所在么?
#16
同意4楼
#17
我也用过这样的方法
#18
解决方案
第一:把jar打包成像hibernate一样的可以使用的包
第二:在项目引用它创建jar的对象,使用其里面的方法,写在servlet里的init()
第三:写web。xml的配置文件,使servlet跟着Tomcat一起启动。
注意打包时不可以用fatjar打包。
我使用的NetBeans打的。
大家可以试试,有兴趣的话·
#1
放到WEB。XML加载吧。。。应该和JBOSS一样的。。
#2
JSP调JAR这个说话太不专来了吧。。
#3
JSP调JAR这个说话太不专业来了吧。。
#4
改下[tomcat]/bin/startup.bat,在里面加两行代码就行了么!
#5
写个监听器就好了,容器启动的时候就执行
#6
同意4楼
#7
startup.bat文件中启动或者写个servlet类,然后load-on-startup配置一下在类里用利用runtime启动
或者你在自己写一个bat文件,启动tomcat和jar。
或者你在自己写一个bat文件,启动tomcat和jar。
#8
都行
#9
跟着项目启动不行吗?
比如在servlet启动的时候定义一个init-param
类似:
<init-param>
<param-name>otherApp</...>
<param-value>package.a.b.c.OtherApp</...>
</...>
然后在servlet的init方法里
用函数(好像叫getInitParameter,lz自己google一下吧)
把“package.a.b.c.OtherApp”读出来,
然后用Class.forName(),newInstance之类的方法来实例化一个类,
然后就想干什么干什么了。
good luck
比如在servlet启动的时候定义一个init-param
类似:
<init-param>
<param-name>otherApp</...>
<param-value>package.a.b.c.OtherApp</...>
</...>
然后在servlet的init方法里
用函数(好像叫getInitParameter,lz自己google一下吧)
把“package.a.b.c.OtherApp”读出来,
然后用Class.forName(),newInstance之类的方法来实例化一个类,
然后就想干什么干什么了。
good luck
#10
这个还靠谱一些···
用servlet我也会··
但是现在没法用···
#11
恩,用监听器。我用的就是这个。
#12
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class SerialPortListener implements ServletContextListener {
private Log log = LogFactory.getLog(SerialPortListener.class);
public void contextInitialized(ServletContextEvent arg0) {
if (ResetDatabase.checkDBExist()){
int eqListSize = CommonDataUnit.getEquiList().size();
if (eqListSize > 0){
// 波特率
int baudRateNo = Integer.parseInt(CommonDataUnit.getSysArgsByKey(BeanForSysArgs.BAUDRATE_NUMBER));
// 刷新时间( 单位为秒)
int flashTime = Integer.parseInt(CommonDataUnit.getSysArgsByKey(BeanForSysArgs.DATA_FLASHTIME));
// 3: 测试串口是否可用
Level_First_Serial first_Level = Level_First_Serial.getInstance();
if (first_Level.initForTempHumi(baudRateNo, flashTime) == 1){
log.info("程序启动串口正常...");
first_Level.beginTask(); // 开始运行串口
}else{
log.info("程序无法启动串口.原因:无法连接串口...");
}
}else{
log.info("程序无法启动串口.原因:没有发现仪器列表...");
}
}
}
public void contextDestroyed(ServletContextEvent arg0) {
if (ResetDatabase.checkDBExist()){
Level_First_Serial.getInstance().endTask();
Level_First_Serial.getInstance().clearBarData();
log.info("程序已经关闭串口连接...");
}
}
}
import javax.servlet.ServletContextListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class SerialPortListener implements ServletContextListener {
private Log log = LogFactory.getLog(SerialPortListener.class);
public void contextInitialized(ServletContextEvent arg0) {
if (ResetDatabase.checkDBExist()){
int eqListSize = CommonDataUnit.getEquiList().size();
if (eqListSize > 0){
// 波特率
int baudRateNo = Integer.parseInt(CommonDataUnit.getSysArgsByKey(BeanForSysArgs.BAUDRATE_NUMBER));
// 刷新时间( 单位为秒)
int flashTime = Integer.parseInt(CommonDataUnit.getSysArgsByKey(BeanForSysArgs.DATA_FLASHTIME));
// 3: 测试串口是否可用
Level_First_Serial first_Level = Level_First_Serial.getInstance();
if (first_Level.initForTempHumi(baudRateNo, flashTime) == 1){
log.info("程序启动串口正常...");
first_Level.beginTask(); // 开始运行串口
}else{
log.info("程序无法启动串口.原因:无法连接串口...");
}
}else{
log.info("程序无法启动串口.原因:没有发现仪器列表...");
}
}
}
public void contextDestroyed(ServletContextEvent arg0) {
if (ResetDatabase.checkDBExist()){
Level_First_Serial.getInstance().endTask();
Level_First_Serial.getInstance().clearBarData();
log.info("程序已经关闭串口连接...");
}
}
}
#13
web.xml中加入
<listener>
<listener-class>com.htc.listener.SerialPortListener</listener-class>
</listener>
<listener>
<listener-class>com.htc.listener.SerialPortListener</listener-class>
</listener>
#14
嗯,这样可以。
或者自己写个servlet,配置到web.xml里面让启动时执行,servlet去调用那个main
#15
你要在服务端的 tomcat 启动执行一个独立的应用程序干嘛?有啥意义所在么?
#16
同意4楼
#17
我也用过这样的方法
#18
解决方案
第一:把jar打包成像hibernate一样的可以使用的包
第二:在项目引用它创建jar的对象,使用其里面的方法,写在servlet里的init()
第三:写web。xml的配置文件,使servlet跟着Tomcat一起启动。
注意打包时不可以用fatjar打包。
我使用的NetBeans打的。
大家可以试试,有兴趣的话·