tinguo002

 

tomcat7整合APR(win7和linux环境下)

错误提示:
The APR based Apache Tomcat Native library which allows optimal performanc e in production environments was not found on the java.library.path: D:\Java\jdk 1.5.0_07\bin

详细参考出处:http://blog.csdn.net/zh592677127/article/details/8603490


tomcat7如果没配置APR,启动时会报这样的错误日志:
信息: The APR based Apache Tomcat Native library which allows optimal performanc e in production environments was not found on the java.library.path: D:\Java\jdk 1.5.0_07\bin,提示没找到APR的配置
先解释一下APR,APR: Apache Portable Runtime,可看作是Apache轻便运行时,在http://tomcat.apache.org/tomcat-6.0-doc/apr.html 对APR进行了详细介绍,说白了作用就是如何在 Tomcat中使用JNI的方式来读取文件以及进行网络传输。这个东西可以大大提升Tomcat对静态文件的处理性能,同时如果你使用了HTTPS方式传输的话,也可以提升SSL的处理性能。可以不使用Apache也能提高对静态文件的处理能力。
  Tomcat可以使用APR来提供超强的可伸缩性和性能,更好地集成本地服务器技术.
  APR(Apache Portable Runtime)是一个高可移植库,它是Apache HTTP Server 2.x的核心。APR有很多用途,包括访问高级IO功能(例如sendfile,epoll和OpenSSL),OS级别功能(随机数生成,系统状态等等),本地进程管理(共享内存,NT管道和UNIX sockets)。这些功能可以使Tomcat作为一个通常的前台WEB服务器,能更好地和其它本地web技术集成,总体上让Java更有效率作为一个高性能web服务器平台而不是简单作为后台容器。
  在产品环境中,特别是直接使用Tomcat做WEB服务器的时候,应该使用Tomcat Native来提高其性能。
  要测APR给tomcat带来的好处最好的方法是在慢速网络上(模拟 Internet),将Tomcat线程数开到300以上的水平,然后模拟一大堆并发请求。如果不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待。但是配上APR之后,并发的线程数量明显下降,从原来的300可能会马上下降到只有几十,新的请求会毫无阻塞的进来。在局域网环境测,就算是 400个并发,也是一瞬间就处理/传输完毕,但是在真实的Internet环境下,页面处理时间只占0.1%都不到,绝大部分时间都用来页面传输。
  一. Windows环境:
  APR需要安装三个组件:
     1、APR library
     2、JNI wrappers for APR used by Tomcat (libtcnative)
     3、OpenSSL libraries
  从http://tomcat.heanet.ie/native/1.1.14/binaries/win32/ ,下载tcnative-1.1.10.dll,tcnative-1.1.10.dll已经包含了上面的三个组件,所以只要把tcnative-1.1.10.dll拷贝到tomcat的bin下就行了。
  然后启动tomcat,启动后的信息为:信息: Loaded APR based Apache Tomcat Native library 1.1.14. 2009-12-24 14:17:59 org.apache.catalina.core.AprLifecycleListener init 信息: APR capabilities: IPv6 [false], sendfile [true], accept filters [false], r andom [true]. 2009-12-24 14:18:00 org.apache.coyote.http11.Http11AprProtocol init 这说明APR配置成功,已经启用。
  windows中还有一种方式是:
    1.将 tcnative-1.1.10.dll 放于tomcat的同级目录 APR/lib 下;
    2. 修改一下 catalina.bat,加上set CATALINA_OPTS="-Djava.library.path=../../APR/lib"
  还有就是直接将 tcnative-1.1.10.dll加到系统变量PATH里面,也可以放在 windows/system32 下面。
  二. Linux环境:
  (1).安装APR
  APR需要三个组件:
    1.apr-1.3.9.tar.gz
    2.apr-util-1.3.9.tar.gz
    3.tomcat-native.tar.gz
  从 http://apr.apache.org/download.cgi 上可下载apr-1.3.9.tar.gz和apr-util-1.3.9.tar.gz,tomcat中自带 tomcat-native.tar.gz ,
  将 apr-1.3.9.tar.gz和 apr-util-1.3.9.tar.gz 上传到/usr/local/目录,
  # wget   http://apache.freelamp.com/apr/apr-1.3.9.tar.gz
  #apr-1.3.9.tar.gz
  #tar zxvf apr-1.3.9.tar.gz
  #cd apr-1.3.9
  #./configure
  #make
  #make install
  执行完后,会有提示信息:
  Libraries have been installed in:
    /usr/local/apr/lib
  If you ever happen to want to link against installed libraries
  in a given directory, LIBDIR, you must either use libtool, and
  specify the full pathname of the library, or use the `-LLIBDIR'
  flag during linking and do at least one of the following:
    - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
      during execution
    - add LIBDIR to the `LD_RUN_PATH' environment variable
      during linking
    - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
    - have your system administrator add LIBDIR to `/etc/ld.so.conf'
  See any operating system documentation about shared libraries for
  more information, such as the ld(1) and ld.so(8) manual pages.
  会在/local生成apr目录, apr-1.3.9 的库安装在/usr/local/apr/lib目录。
  # wget   http://apache.freelamp.com/apr/apr -util -1.3.9.tar.gz
  #apr-util-1.3.9.tar.gz
  #tar zxvf apr-util-1.3.9.tar.gz
  #cd apr-util-1.3.9
  #./configure --with-apr=/usr/local/apr    //配置指向apr-1.3.9的安装目录
  #make
  #make install
  command执行完后,提示信息和 apr-1.3.9的信息相同,表示apr-util-1.3.9 的库也安装在/usr/local/apr/lib目录。
  安装 tomcat-native组件
  #cd /usr/local/tomcat6/bin
  #tar zxvf tomcat-native.tar.gz
  #cd tomcat-native-1.1.16-src/jni/native
  # . /configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.5.0_20
  #make
  #make install
  command执行完的提示信息和安装  apr-1.3.9 的提示相同,表示 tomcat-native 的库 也是安装在 /usr/local/apr/lib目录。
  (2)设置 Tomcat 整合 APR
  有两种方法:
  1.修改 tomcat 的启动 shell ( catalina.sh ),在该文件中加入启动参数: CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"
  2.也可以在环境变量中配置/etc/profile中加入
  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr /lib
       vi  /etc/profile 
      # 后面添加以下内容
       export  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/ local /apr/lib
      # 使profile生效,  
       source  /etc/profile
  (3).判断安装成功:
  启动tomcat,看日志
  #bin/startup.sh 
  #head  logs/catalina.out
  如果看到下面的启动日志,表示成功。
  2009-12-24 17:34:32 org.apache.coyote.http11.Http11AprProtocol init

posted @ 2014-07-17 15:10 一堣而安 阅读(2989) | 评论 (0)编辑 收藏

linux tomcat启动过程记录

1.使用工具WinSCP  把 tomcat 上传到 linux服务器 opt目录下。
2.使用工具 ssh 连接Linux服务器。
3.使用命令运行 tomcat
    cd /opt/TomcatServer7/bin 
   ./startup.sh
    提示没有权限

4.设置权限
    查看 startup.sh 文件的权限      ls -l startup.sh
    设置所有 .sh文件为可读、可写、可执行     chmod 777 *.sh
5.运行tomcat
    ./startup.sh
6.查看tomcat运行状态

ps -ef |grep tomcat
如果有一大长长长串的东西出现,那就是启动成功了。

posted @ 2014-07-16 18:49 一堣而安 阅读(269) | 评论 (1)编辑 收藏

myeclipse如何设置字体?

http://jingyan.baidu.com/article/e2284b2b378581e2e6118d12.html

posted @ 2014-07-07 23:12 一堣而安 阅读(183) | 评论 (0)编辑 收藏

ORA-12154

最近在安装完Oracle Developer Suite之后,就无法登录系统,输入帐号登录发生错误:ORA-12154:TNS:无法解析指定的连接标帜符。

从网上查看说一般是因为 配置文件中没有对应的实例名,然后我就输入C:/tnsping myoracle(我的ora实例名),查看tnsnames.ora和sqlnet.ora是否配置正确,结果报错,提示:TNS-03505:无法解析名称 说明配置文件有误。

然后我就查看%Oracle_Home%/Db_1/NetWork/admin/TNSNAMES.ORA 文件,发现其中包含我需要登录的实例名。我在尝试tnsping命令,发现其查看到的参数文件sqlnet.ora不是我默认安装的oracle下面的sqlnet.ora,而是Oracle Developer Suite目录下NetWork文件夹下面的sqlnet.ora文件,把安装目录下的tnsnames.ora中的实例配置内容拷贝过去,OK.

MYORACLE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = MYORACLE)
    )
  )

至于为什么会修改为使用那个目录下的参数文件,还没有研究怎么处理。先记下处理过程。

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2012-12/75562.htm

posted @ 2014-07-07 23:07 一堣而安 阅读(223) | 评论 (0)编辑 收藏

Linux 目录说明

http://wenku.baidu.com/link?url=ZjLn3il_4WE9FS5tajs62fhbUEmRdue8YwilBHcl3lV8q_pMM18zOXt61P7LjBhWjL4u0oJvpEU2of6JxQl4Ml3XJa5eCKDt7RJQeCeHjaK

posted @ 2014-07-04 16:48 一堣而安 阅读(158) | 评论 (0)编辑 收藏

shh 快捷键

ctrl + d      删除光标所在位置上的字符相当于VIM里x或者dl
ctrl + h      删除光标所在位置前的字符相当于VIM里hx或者dh
ctrl + k      删除光标后面所有字符相当于VIM里d shift+$
ctrl + u      删除光标前面所有字符相当于VIM里d shift+^
ctrl + w     删除光标前一个单词相当于VIM里db
ctrl + y      恢复ctrl+u上次执行时删除的字符
ctrl + ?      撤消前一次输入
alt  + r      撤消前一次动作
alt  + d     删除光标所在位置的后单词

移动
ctrl + a     将光标移动到命令行开头相当于VIM里shift+^
ctrl + e     将光标移动到命令行结尾处相当于VIM里shift+$
ctrl + f      光标向后移动一个字符相当于VIM里l
ctrl + b     光标向前移动一个字符相当于VIM里h
ctrl + 方向键左键    光标移动到前一个单词开头
ctrl + 方向键右键    光标移动到后一个单词结尾
ctrl + x       在上次光标所在字符和当前光标所在字符之间跳转
alt  + f      跳到光标所在位置单词尾部


替换
ctrl + t       将光标当前字符与前面一个字符替换
alt  + t     交换两个光标当前所处位置单词和光标前一个单词
alt  + u     把光标当前位置单词变为大写
alt  + l      把光标当前位置单词变为小写
alt  + c      把光标当前位置单词头一个字母变为大写
^oldstr^newstr    替换前一次命令中字符串  


历史命令编辑
ctrl + p   返回上一次输入命令字符
ctrl + r       输入单词搜索历史命令
alt  + p     输入字符查找与字符相接近的历史命令
alt  + >     返回上一次执行命令


其它
ctrl + s      锁住终端
ctrl + q      解锁终端
ctrl + l        清屏相当于命令clear
ctrl + c       另起一行
ctrl + i       类似TAB健补全功能
ctrl + o      重复执行命令
alt  + 数字键  操作的次数


黑色头发:http://heisetoufa.iteye.com/

posted @ 2014-07-04 16:15 一堣而安 阅读(162) | 评论 (0)编辑 收藏

Linux 常用命令

http://www.oschina.net/translate/useful-linux-commands-for-newbies 

1.压缩命令:

  命令格式:tar  -zcvf   压缩文件名.tar.gz   被压缩文件名

      可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。

 

2.解压缩命令:

  命令格式:tar  -zxvf   压缩文件名.tar.gz

  解压缩后的文件只能放在当前的目录。

3.zip 压缩和解压
     http://www.cnblogs.com/chinareny2k/archive/2010/01/05/1639468.html

3.linux下实时查看tomcat运行日志

1、先切换到:cd usr/local/tomcat5/logs

2、tail -f catalina.out

3、这样运行时就可以实时查看运行日志了

Ctrl+c 是退出tail命令。

4.linux下查看tomcat是否启动(ps、grep)

ps -ef |grep tomcat

如果有一大长长长串的东西出现,说明tomcat是启动了,第一个是启动该进程的用户,第二个是该进程的id,第三个 是占用CPU的百分比,
第四个是占用内存的百分比


5.linux查看java jdk安装路径和设置环境变量

 windows:
set java_home:查看JDK安装路径
java -version:查看JDK版本


linux:
whereis java
which java (java执行路径)
echo $JAVA_HOME

echo $PATH

6.Linux下mysql命令
service mysqld start   启动
service mysqld status  查看状态

 

posted @ 2014-07-04 15:57 一堣而安 阅读(192) | 评论 (0)编辑 收藏

查看linux系统版本是32位的还是64位的

一、

[root@linuxzgf ~]#getconf LONG_BIT
[root@linuxzgf ~]#getconf WORD_BIT
(32位的系统中int类型和long类型一般都是4字节,64位的系统中int类型还是4字节的,但是long已变成了8字节inux系统中可用"getconf WORD_BIT"和"getconf LONG_BIT"获得word和long的位数。64位系统中应该分别得到32和64。)

二、

[root@linuxzgf ~]#uname -a
如果有x86_64就是64位的,没有就是32位的
后面是X686或X86_64则内核是64位的,i686或i386则内核是32位的

三、

直接看看有没有/lib64目目录的方法。64位的系统会有/lib64和/lib两个目录,32位只有/lib一个。

四、

[root@linuxzgf ~]#file /sbin/init
/sbin/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
32-bit即是32位的 linux, 如是64位的, 显示的是 64-bit

五、

[root@linuxzgf ~]#file /bin/cat
/bin/cat: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
32-bit即是32位的 linux, 如是64位的, 显示的是 64-bit

六、

[root@linuxzgf ~]#uname -m
x86_64
3.# arch
x86_64
i686

七、查看cpu是多少位的

[root@linuxzgf ~]#more /proc/cpuinfo

八、

[root@linuxzgf ~]# echo $HOSTTYPE
x86_64

getconf命令还可以获取系统的基本配置信息,比如操作系统位数,内存大小,磁盘大小等。
$getconf -a  可以看到详细的系统信息

posted @ 2014-07-04 15:56 一堣而安 阅读(220) | 评论 (0)编辑 收藏

HTML 转义字符

http://114.xixik.com/character/

posted @ 2014-07-02 10:42 一堣而安 阅读(138) | 评论 (0)编辑 收藏

WEB 打印,去页码、隐藏打印按钮

详细参考:http://www.cnblogs.com/aidd2008/archive/2012/04/25/2469994.html

JSP代码如下:

<%@page import="java.net.URLDecoder"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
 String path = request.getContextPath();
 String basePath = request.getScheme() + "://"
   + request.getServerName() + ":" + request.getServerPort()
   + path + "/";
 String params = request.getParameter("params");
 params = URLDecoder.decode(params, "UTF-8");
 String[] arr = new String[8];
 if (params != null) {
  arr = params.split(",");
 }
 request.setAttribute("arr", arr);
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<base href="<%=basePath%>">

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->
<style media=print>
.Noprint {
 display: none;
}

.PageNext {
 page-break-after: always;
}

</style>
<style type="text/css">
.helpSpan{ 
 margin-left:20px;
 cursor:pointer;
 display:inline-block;
 color:blue;
}
</style>
<script type="text/javascript" src="<%=path%>/js/jquery-1.8.3.min.js"></script>
<title>打印单</title>
<object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>
<link rel="stylesheet" type="text/css"
 href="css/gzjrzcjys/editFrame.css" />
 <script type="text/javascript">
  function print1(){
   document.all.WebBrowser.ExecWB(6,6);
  }
  function wOpen(){
   $("span.open").hide();
   $("span.close").show();
   $("#helpContent").show();
  }
  function wClose(){
   $("span.open").show();
   $("span.close").hide();
   $("#helpContent").hide();
  }
   var hkey_root, hkey_path, hkey_key;
         hkey_root = "HKEY_CURRENT_USER";
         hkey_path = "\\software\\Microsoft\\Internet Explorer\\PageSetup\\";
         //设置网页打印的页眉页脚边距为空
         function pagesetup_null() {
             try {
                 var RegWsh = new ActiveXObject("WScript.Shell");
                 hkey_key = "header";
                 RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "");
                 hkey_key = "footer";
                 RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "");
                 hkey_key = "margin_left";
                 RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "0.0");
                 hkey_key = "margin_right";
                 RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "0.0");
                 hkey_key = "margin_top";
                 RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "0.0");
                 hkey_key = "margin_bottom";
                 RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "0.0");
             } catch (e) {
              alert(e);
             }
         }

  $(document).ready(function(){
   pagesetup_null();
  });
 </script>
</head>

<body>
 <div id="frame">
  <div id="frame_title">线下资金转入申请</div>
  <div id="frame_content">

   <table class="content">
    <tr>
     <th>收款银行:</th>
     <td><%=arr[0]%></td>
     <th>收款方全称:</th>
     <td><%=arr[1]%></td>
    </tr>
    <tr>
     <th>收款方银行账号:</th>
     <td><%=arr[2]%></td>
     <th>充值码:</th>
     <td><%=arr[3]%>(填写在备注栏)</td>
    </tr>
    <tr>
     <th>汇款银行:</th>
     <td><%=arr[4]%></td>
     <th>汇款方全称:</th>
     <td><%=arr[5]%></td>
    </tr>
    <tr>
     <th>汇款账号:</th>
     <td><%=arr[6]%></td>
     <th>汇款金额:</th>
     <td><%=arr[7]%>&nbsp;元</td>
    </tr>
   </table>


  </div>
  <div id="frame_bottom" class="Noprint">
   <a href="javascript:void(0)" class="button_toRound"><span
    style="font-size:14px;"
    onclick="print1()" class="Noprint">【打印】</span>
   </a>
  </div>
  <div style="padding:12px 5px;background-color:#ffffff" class="Noprint">
   备注: 请到网银或者银行办理转账业务,转账汇款时,信息必须如实填写,以避免无法如实到账而给您的投资造成损失!</div>
 </div>

 <div style="width:750px;margin:auto;margin-top:150px;" class="Noprint">
  <div>友情链接:</div>
  <div>
   <table class="content">
    <tr>
     <td><a href="http://www.boc.cn/" target="_blank">中国银行</a>
     </td>
     <td><a href="http://www.ccb.com/cn/home/index.html"
      target="_blank">建设银行</a>
     </td>
     <td><a href="http://www.icbc.com.cn/icbc/" target="_blank">工商银行</a>
     </td>
     <td><a href="http://www.abchina.com/cn/" target="_blank">农业银行</a>
     </td>
    </tr>
    <tr>
     <td><a href="http://www.cebbank.com/Site/ceb/cn"
      target="_blank">光大银行</a>
     </td>
     <td><a
      href="http://www.bankcomm.com/BankCommSite/cn/default.html"
      target="_blank">交通银行</a>
     </td>
     <td><a href="http://www.cib.com.cn/cn/index.html"
      target="_blank">兴业银行</a>
     </td>
     <td><a href="http://www.psbc.com/portal/zh_CN/index.html"
      target="_blank">邮政储蓄</a>
     </td>
    </tr>

   </table>
  </div>
 </div>
 <div style="width:750px;margin:auto;margin-top:50px;" class="Noprint">
  <div>帮助:点击【打印】按钮没有反应。<span class="open helpSpan"  onclick="wOpen()">&gt;&gt;&gt;展开</span><span onclick="wClose()" class="close helpSpan" style="display:none;">&lt;&lt;&lt;收起</span></div>
  <div id="helpContent" style="display:none;">
   <p>需要将本站点添加为信任站点。共分为三步。</p>
   <p>第一步:打开IE浏览器的 Intenet选项</p>
   <div><img src="<%=path%>/images/open_Intenet_ie8.jpg"/></div>
   <p>或者</p>
   <div><img src="<%=path%>/images/open_Intenet_ie11.jpg"/></div>
   <p style="margin-top:20px;">第二步:添加信任站点</p>
   <div><img src="<%=path%>/images/setXinren_ie11.jpg"/></div>
   <p style="margin-top:20px;">第三步:允许控件运行</p>
   <div><img src="<%=path%>/images/setActive.jpg"/></div>
  </div>
 </div>
 <!--endprint-->
</body>
</html>

代码中所需图片如下:






posted @ 2014-06-28 21:49 一堣而安 阅读(424) | 评论 (0)编辑 收藏

仅列出标题
共17页: 上一页 1 2 3 4 5 6 7 8 9 下一页 Last 

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

收藏夹

搜索

最新评论

阅读排行榜

评论排行榜