setup.jsp
上传用户:jhtang88
上传日期:2014-01-27
资源大小:28528k
文件大小:13k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. <%@ page contentType="text/html;charset=utf-8" %>
  2. <%@ page import="java.io.*,
  3.  cn.js.fan.db.*,
  4.  cn.js.fan.util.*,
  5.  cn.js.fan.web.*,
  6.  com.redmoon.forum.*,
  7.  org.jdom.*,
  8.                  java.util.*"
  9. %>
  10. <%
  11. /**
  12.  * $RCSfile: setup.jsp,v $
  13.  * $Revision: 1.1.1.1 $
  14.  * $Date: 2002/09/09 13:50:21 $
  15.  *
  16.  * Copyright (C) 1999-2001 CoolServlets, Inc. All rights reserved.
  17.  *
  18.  * This software is the proprietary information of CoolServlets, Inc.
  19.  * Use is subject to license terms.
  20.  */
  21. %>
  22. <%@ page import="java.io.*,
  23.                  java.util.*,
  24.                  java.lang.reflect.*"
  25. %>
  26. <%
  27. XMLConfig cfg = new XMLConfig("config_oa.xml", false, "gb2312");
  28. %>
  29. <title>云网OA安装</title>
  30. <link rel="stylesheet" type="text/css" href="../common.css">
  31. <table cellpadding="6" cellspacing="0" border="0" width="100%">
  32. <tr>
  33. <td width="1%" valign="top"></td>
  34. <td width="99%" valign="top">
  35.     <b>欢迎您使用OA 版本<%=cfg.get("oa.version")%></b>
  36.     <hr size="0">
  37.     <font size="-1">
  38.      在安装继续进行前,你的服务器环境必须通过以下所有检查: </font>
  39.     <ul>
  40.     <table border="0">
  41.     <tr><td valign=top><img src="images/check.gif" width="13" height="13"></td>
  42.         <td>
  43.         <font size="-1">
  44.         安装工具检测到你正运行在
  45.         <%= application.getServerInfo() %>        </font>     </td>
  46.     </tr>
  47. <%  // JDK check. See if they have Java2 or later installed by trying to
  48.     // load java.util.HashMap.
  49.     boolean isJDK1_2 = true;
  50.     try {
  51.         Class.forName("java.util.HashMap");
  52.     }
  53.     catch (ClassNotFoundException cnfe) {
  54.         isJDK1_2 = false;
  55.     }
  56.     if (isJDK1_2) {
  57. %>
  58. <tr><td valign=top><img src="images/check.gif" width="13" height="13"></td>
  59.         <td>
  60. <font size="-1">
  61.             你的JDK版本为1.2或者更新。  </font>     </td>
  62.     </tr>
  63. <%  }
  64.     else {
  65. %>
  66. <tr><td valign=top><img src="images/x.gif" width="13" height="13"></td>
  67.         <td>
  68. <font size="-1">
  69.             你的JDK版本好像低于JDK 1.2。因此安装不能继续。如果可能,请更新JDK版本并重新开始这个过程。     </font>     </td>
  70.     </tr>
  71. <%  }
  72.     // Servlet version check. The appserver must support at least support
  73.     // the Servlet API 2.2.
  74.     boolean servlet2_2 = true;
  75.     try {
  76.         Class sessionClass = session.getClass();
  77.         Class[] setAttributeParams = new Class[1];
  78.         setAttributeParams[0] = Class.forName("java.lang.String");
  79.         Method getAttributeMethod = sessionClass.getMethod("getAttribute", setAttributeParams);
  80.     }
  81.     catch (SecurityException se) {
  82.         // some class loaders might not let us do the reflection above, so use
  83.         // the old method of finding the appserver version:
  84.         servlet2_2 = application.getMajorVersion() >= 2
  85.                         && application.getMinorVersion() >= 2;
  86.     }
  87.     catch (Exception e) {
  88.         // ClassNotFoundException & MethodNotFoundException end up here.
  89.         servlet2_2 = false;
  90.     }
  91.     if (servlet2_2) {
  92. %>
  93. <tr><td valign=top><img src="images/check.gif" width="13" height="13"></td>
  94.         <td>
  95. <font size="-1">
  96.             你的应用服务器支持servlet 2.2或者更新。        </font>     </td>
  97.     </tr>
  98. <%  }
  99.     else {
  100. %>
  101. <tr><td valign=top><img src="images/x.gif" width="13" height="13"></td><td>
  102. <font size="-1">     你的应用服务器不支持servlet 2.2或者更新。</font>
  103. </td></tr>
  104. <%
  105. }
  106. %>
  107. <%
  108. // cloudwebsoft
  109. boolean cloudInstalled = true;
  110. try {  Class.forName("com.redmoon.forum.MsgDb");  
  111. }
  112. catch (ClassNotFoundException cnfe) {  cloudInstalled = false;  }
  113.         // workplan
  114. boolean workplanInstalled = true;
  115. try {  Class.forName("com.redmoon.oa.workplan.WorkPlanDb");
  116. }
  117. catch (ClassNotFoundException cnfe) { workplanInstalled = false; }
  118. // address
  119. boolean addressInstalled = true;
  120. try {  Class.forName("com.redmoon.oa.address.AddressDb");
  121. }
  122. catch (ClassNotFoundException cnfe) { addressInstalled = false; }
  123. // message
  124. boolean messageInstalled = true;
  125. try {  Class.forName("com.redmoon.oa.message.MessageDb");
  126. }
  127. catch (ClassNotFoundException cnfe) { messageInstalled = false; }
  128. // task
  129. boolean taskInstalled = true;
  130. try {  Class.forName("com.redmoon.oa.task.TaskDb");
  131. }
  132. catch (ClassNotFoundException cnfe) { taskInstalled = false; }
  133. // kaoqin
  134. boolean kaoqinInstalled = true;
  135. try {  Class.forName("com.redmoon.oa.kaoqin.KaoqinDb");
  136. }
  137. catch (ClassNotFoundException cnfe) { kaoqinInstalled = false; }
  138. // worklog
  139. boolean worklogInstalled = true;
  140. try {  Class.forName("com.redmoon.oa.worklog.WorkLogDb");
  141. }
  142. catch (ClassNotFoundException cnfe) { worklogInstalled = false; }
  143. // netdisk
  144. boolean netdiskInstalled = true;
  145. try {  Class.forName("com.redmoon.oa.netdisk.Leaf");
  146. }
  147. catch (ClassNotFoundException cnfe) { netdiskInstalled = false; }
  148. // book
  149. boolean bookInstalled = true;
  150. try {  Class.forName("com.redmoon.oa.book.BookDb");
  151. }
  152. catch (ClassNotFoundException cnfe) { bookInstalled = false; }
  153. // officeequip
  154. boolean officeequipInstalled = true;
  155. try {  Class.forName("com.redmoon.oa.officeequip.OfficeDb");
  156. }
  157. catch (ClassNotFoundException cnfe) { officeequipInstalled = false; }
  158. // asset
  159. boolean assetInstalled = true;
  160. try {  Class.forName("com.redmoon.oa.asset.AssetDb");
  161. }
  162. catch (ClassNotFoundException cnfe) { assetInstalled = false; }
  163. // vehicle
  164. boolean vehicleInstalled = true;
  165. try {  Class.forName("com.redmoon.oa.vehicle.VehicleDb");
  166. }
  167. catch (ClassNotFoundException cnfe) { vehicleInstalled = false; }
  168. // meeting
  169. boolean meetingInstalled = true;
  170. try {  Class.forName("com.redmoon.oa.meeting.BoardroomDb");
  171. }
  172. catch (ClassNotFoundException cnfe) { meetingInstalled = false; }
  173. // Lucene
  174. boolean luceneInstalled = true;
  175. try {  Class.forName("org.apache.lucene.document.Document");  }
  176. catch (ClassNotFoundException cnfe) {  luceneInstalled = false;  }
  177. // Lucene Chinese support
  178. boolean luceneChineseInstalled = true;
  179. try {  Class.forName("org.apache.lucene.analysis.cn.ChineseAnalyzer");  }
  180. catch (ClassNotFoundException cnfe) {  luceneChineseInstalled = false;  }
  181. // JavaMail
  182. boolean javaMailInstalled = true;
  183. try {
  184. Class.forName("javax.mail.Address");  // mail.jar
  185. Class.forName("javax.activation.DataHandler"); // activation.jar
  186. // Class.forName("dog.mail.nntp.Newsgroup"); // nntp.jar
  187. }
  188. catch (ClassNotFoundException cnfe) {  javaMailInstalled = false;  }
  189. // JDBC std ext
  190. boolean jdbcExtInstalled = true;
  191. try {  Class.forName("javax.sql.DataSource");  }
  192. catch (ClassNotFoundException cnfe) {  jdbcExtInstalled = false;  }
  193. boolean filesOK = cloudInstalled && workplanInstalled && addressInstalled && taskInstalled && kaoqinInstalled && worklogInstalled && messageInstalled && netdiskInstalled && bookInstalled && assetInstalled && officeequipInstalled && vehicleInstalled && meetingInstalled && javaMailInstalled && jdbcExtInstalled;
  194. if (filesOK) {
  195. %>
  196. <tr><td valign=top><img src="images/check.gif" width="13" height="13"></td><td>
  197. <font size="-1"> 所有的应用程序包都安装正确。
  198. <%  }
  199. else {
  200. %>
  201. <tr><td valign=top><img src="images/x.gif" width="13" height="13"></td><td>
  202. <font size="-1">一个或者多个应用程序包没有被安装。
  203. <%  }  %>
  204. <tr><td colspan="2" valign=top><ul>
  205.     <font size="-1"><img src="images/<%= workplanInstalled?"check.gif":"x.gif" %>" width="13" height="13">
  206.     云网工作流内核 (workplan.jar)
  207. <br> <img src="images/<%= addressInstalled?"check.gif":"x.gif" %>" width="13" height="13">
  208.     云网通讯录内核 (address.jar)
  209. <br> <img src="images/<%= taskInstalled?"check.gif":"x.gif" %>" width="13" height="13">
  210.     云网任务督办内核 (task.jar)
  211. <br> <img src="images/<%= messageInstalled?"check.gif":"x.gif" %>" width="13" height="13">
  212.     云网短消息内核 (message.jar)
  213. <br> <img src="images/<%= kaoqinInstalled?"check.gif":"x.gif" %>" width="13" height="13">
  214.     云网员工考勤内核 (kaoqin.jar)
  215. <br> <img src="images/<%= worklogInstalled?"check.gif":"x.gif" %>" width="13" height="13">
  216.     云网工作记事内核 (worklog.jar)
  217. <br> <img src="images/<%= netdiskInstalled?"check.gif":"x.gif" %>" width="13" height="13">
  218.     云网网络硬盘内核 (netdisk.jar)
  219. <br> <img src="images/<%= bookInstalled?"check.gif":"x.gif" %>" width="13" height="13">
  220.     云网图书管理内核 (book.jar)
  221. <br> <img src="images/<%= assetInstalled?"check.gif":"x.gif" %>" width="13" height="13">
  222.     云网资产管理内核 (asset.jar)
  223. <br> <img src="images/<%= vehicleInstalled?"check.gif":"x.gif" %>" width="13" height="13">
  224.     云网车辆管理内核 (vehicle.jar)
  225. <br> <img src="images/<%= officeequipInstalled?"check.gif":"x.gif" %>" width="13" height="13">
  226.     云网办工用品管理内核 (officeequip.jar)
  227. <br> <img src="images/<%= meetingInstalled?"check.gif":"x.gif" %>" width="13" height="13">
  228.     云网会议管理内核 (meeting.jar)
  229.     <br> <img src="images/<%= cloudInstalled?"check.gif":"x.gif" %>" width="13" height="13">
  230.     云网论坛内核 (forum.jar)
  231.     <br> <img src="images/<%= javaMailInstalled?"check.gif":"x.gif" %>" width="13" height="13">
  232.     JavaMail支持 (mail.jar, activation.jar,)
  233.     <br> <img src="images/<%= jdbcExtInstalled?"check.gif":"x.gif" %>" width="13" height="13">
  234.     JDBC 2.0 扩展 (jdbc2_0-stdext.jar)     </font>
  235.   </ul></td></tr>
  236. <%
  237. //Check the status of JiveHome
  238. boolean propError = false;
  239. String errorMessage = null;
  240. String cloudHome = application.getRealPath("/");
  241. try {
  242. // Class jiveGlobals = Class.forName("com.jivesoftware.forum.JiveGlobals");
  243. // Method getJiveHome = jiveGlobals.getMethod("getJiveHome", null);
  244. // cloudHome = (String)getJiveHome.invoke(null, null);
  245. if (cloudHome != null) {
  246.                 // See if the cloudHome directory actually exists
  247.                 try {
  248.                     File file = new File(cloudHome);
  249.                     if (!file.exists()) {
  250.                         propError = true;
  251.                         errorMessage = "目录 <tt>" + cloudHome + "</tt> " +
  252.                             "不存在。请编辑 <tt>jive_init.properties</tt> 文件" +
  253.                             "指定正确的jiveHome目录。";
  254.                     }
  255.                 }
  256.                 catch (Exception e) {}
  257.                 if (!propError) {
  258.      // See if cloudHome is readable and writable.
  259.      // Method jiveHomeReadable = jiveGlobals.getMethod("isJiveHomeReadable", null);
  260.      // boolean readable = ((Boolean)jiveHomeReadable.invoke(null, null)).booleanValue();
  261. boolean readable = (new File(cloudHome)).canRead();
  262.      if (!readable) {
  263.      propError = true;
  264.      errorMessage = "<tt>cloudHome</tt> 存在于<tt>" + cloudHome +
  265.      "</tt>, 但是你的应用服务器没有对它的读权限。请设置目录的权限修正此问题。";
  266.      }
  267.      // Method jiveHomeWritable = jiveGlobals.getMethod("isJiveHomeWritable", null);
  268.      // boolean writable = ((Boolean)jiveHomeWritable.invoke(null, null)).booleanValue();
  269. boolean writable = (new File(cloudHome)).canWrite();
  270.      if (!writable) {
  271.      propError = true;
  272.      errorMessage =  "<tt>cloudHome</tt> 存在于<tt>" + cloudHome +
  273.      "</tt>, 但是你的应用服务器没有对它的写权限。请设置目录的权限修正此问题。";
  274.      }
  275.      // Jive Home appears to exist and to be setup correctly. Make sure that all of the proper sub-dirs exist
  276.      // or create them as necessary.
  277.      File homeFile = new File(cloudHome);
  278.      String [] subDirs = new String [] { "log", "upfile" };
  279.      for (int i=0; i<subDirs.length; i++) {
  280.      File subDir = new File(cloudHome, subDirs[i]);
  281.      if (!subDir.exists()) {
  282.      subDir.mkdir();
  283.      }
  284.      }
  285.                 }
  286.      }
  287.          else {
  288.             propError = true;
  289.             errorMessage = "<tt>cloudHome</tt> 目录设置不正确。请参考安装文档正确设置 <tt>jive_init.properties</tt> 文件中的值。";
  290.          }
  291. }
  292. catch (Exception e) {
  293. e.printStackTrace();
  294. propError = true;
  295.             errorMessage = "检查<tt>cloudHome</tt>目录时发生异常。" +
  296. "请确认你安装的是云网论坛程序是否完整!";
  297. }
  298. if (!propError) {
  299. %>
  300. <tr><td valign=top><img src="images/check.gif" width="13" height="13"></td>
  301.   <td>
  302. <tt>OA</tt> <font size="-1">目录正确配置于: </font><tt><%= cloudHome %></tt>.
  303. </td></tr>
  304. <%
  305. }
  306. else {
  307. %>
  308. <tr><td valign=top><img src="images/x.gif" width="13" height="13"></td><td>
  309. <font size="-1"><%= errorMessage %><font>
  310. </td></tr>
  311. <%
  312. }
  313. %>
  314. </table>
  315. </ul>
  316.     <%
  317. if (propError || !isJDK1_2 || !servlet2_2) {
  318. %>
  319. <font color="red" size="-1"><b>安装初始化检查过程中发现错误,请更正,然后重新启动服务器重新开始安装过程。</b></font>
  320. <%
  321. }
  322. else {
  323. %>
  324. <form action="setup2.jsp">
  325.     <hr size="0">
  326.     <div align="center">
  327.     <input type="submit" value="下一步">
  328.     </form>
  329.     <%
  330. }
  331. %>
  332. </td>
  333. </tr>
  334. </table>