`
hugebait
  • 浏览: 26159 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

使用Wrapper来将Java程序转化为NT系统服务

阅读更多
Wrapper 下载页面
   http://sourceforge.net/project/showfiles.php?group_id=39428

  最新的是3.1.2  以下例子都是在此版本下进行
  环境:Win2003server + JDK1.5 + Wrapper3.1.2
  首先: 打包自己的应用
               包含AA.jar  config.xml 一个lib文件夹----包含所有jar  还需要一个log文件夹,使用log4J日志

  配置wrapper.conf文件>
      wrapper.java.command=D:\Sun\AppServer\jdk\bin\java

     这里的指的是你用来执行你程序的Java.exe的路径,一般你配置了环境变量后就可以不管了,当然,你有好几个JDK的话,还是指定吧

     wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
     这个可不是指你的主类,而是和你采用的方式有关,如果你采用第一种整合方式的话,就 写上
    org.tanukisoftware.wrapper.WrapperSimpleApp  ,由它来封装服务


      wrapper.java.classpath.1=../lib/wrapper.jar
      这里添加你用到的jar包文件,从1..n你自己全写上吧,不过wrapper是必须的

     wrapper.java.library.path.1=../lib
    这个是你要存放wrapper.dll的位置,一般默认就可以了

   wrapper.app.parameter.1=
   这个就是你自己可执行程序的主类(MainClass),一般来说,就是包含public static void main的那个类

   # Name of the service 
   wrapper.ntservice.name=PESM_WEB_SERVICE

   # Display name of the service
   wrapper.ntservice.displayname=PESM_WEB_SERVICE

   # Description of the service
   wrapper.ntservice.description=PESM_WEB_SERVICE

  以上三个都有介绍,不说了,名字而已
 
   好,一切配置完成,直接拷贝src/bin下的三个文件,App.bat.in,InstallApp-NT.bat.in,UninstallApp-NT.bat.in到bin目录下,该名字成自己喜欢的,同时把后面的.in全部去掉

   执行 InstallApp-NT.bat.,哈哈,服务加进来了,
 
   好的,run一下,马上又停掉了,怎么搞得。

察看日志
STATUS | wrapper  | 2005/12/08 13:22:15 | Launching a JVM...
INFO   | jvm 1    | 2005/12/08 13:22:16 | log4j:ERROR setFile(null,true) call failed.
INFO   | jvm 1    | 2005/12/08 13:22:16 | java.io.FileNotFoundException: ..Log\System.log (系统找不到指定的路径。)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at java.io.FileOutputStream.openAppend(Native Method)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at java.io.FileOutputStream.<init>(FileOutputStream.java:177)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at org.apache.log4j.FileAppender.setFile(FileAppender.java:282)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:161)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:215)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:256)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:132)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:96)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:654)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:612)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:533)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:417)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:441)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:468)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at org.apache.log4j.LogManager.<clinit>(LogManager.java:122)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at org.apache.log4j.Logger.getLogger(Logger.java:103)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at ytd.pesm.web.Client.<clinit>(Unknown Source)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at java.lang.Class.forName0(Native Method)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at java.lang.Class.forName(Class.java:164)
INFO   | jvm 1    | 2005/12/08 13:22:16 |     at org.tanukisoftware.wrapper.WrapperSimpleApp.main(WrapperSimpleApp.java:334)
INFO   | jvm 1    | 2005/12/08 13:22:16 | log4j:ERROR Either File or DatePattern options are not set for appender [systemLog].
INFO   | jvm 1    | 2005/12/08 13:22:16 | Wrapper (Version 3.1.2) http://wrapper.tanukisoftware.org
INFO   | jvm 1    | 2005/12/08 13:22:16 |

一大堆,最重要的是(wrapper的日志在logs下)发现找不到自己要写得log文件目录,察看wrapper说明知道服务执行后,当前路径就变成bin了,而我们的log文件夹被在logs下,所以,修改log4j.properties中日志的存放路径如下

原来的是
log4j.appender.systemLog.File=Log\\System.log

log4j.appender.systemLog.File=..\\logs\\Log\\System.log

重启服务,ok,找到log路径了,成功启动

还是有点不放心,看看log日志先,一看,傻了,还有错

STATUS | wrapper  | 2005/12/08 13:17:21 | Launching a JVM...
INFO   | jvm 1    | 2005/12/08 13:17:22 | config.xml 监控平台配置错误!!
INFO   | jvm 1    | 2005/12/08 13:17:22 | Wrapper (Version 3.1.2) http://wrapper.tanukisoftware.org
INFO   | jvm 1    | 2005/12/08 13:17:22 |
INFO   | jvm 1    | 2005/12/08 13:17:22 | 无法连接远程主机,请检查通信主机是否打开端口!!
INFO   | jvm 1    | 2005/12/08 13:17:22 | 无法连接远程主机,请检查通信主机是否打开端口!!

找不到config.xml文件,想想刚才的路径问题,把config.xml拷贝到bin下
哈,这下重启,解决问题,日志如下

STATUS | wrapper  | 2005/12/08 13:15:25 | --> Wrapper Started as Service
STATUS | wrapper  | 2005/12/08 13:15:25 | Launching a JVM...
INFO   | jvm 1    | 2005/12/08 13:15:27 | Wrapper (Version 3.1.2) http://wrapper.tanukisoftware.org
INFO   | jvm 1    | 2005/12/08 13:15:27 |
INFO   | jvm 1    | 2005/12/08 13:15:27 | Server.IP:192.168.0.201 port:1888 Connected!

      写下来,一作备忘,二则看是否能给其他朋友一点帮助
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics