精华内容
下载资源
问答
  • 1.一下是tomcat下面conf/logging.properties 2.可通过下面中文解释修改日志输出级别 3.Tomcat的日志级别与类型 tomcat日志分为下面5类: catalina 、 localhost 、 manager 、 admin 、 host-manager 每类日志的...

    1.一下是tomcat下面conf/logging.properties

    2.可通过下面中文解释修改日志输出级别

    3.Tomcat的日志级别与类型

    tomcat 日志分为下面5类:
    catalina 、 localhost 、 manager 、 admin 、 host-manager
    每类日志的级别分为如下 7 种:
    SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)
     

    4.服务器里面的日志建议禁止输出访问日志可注释conf/server.xml

     <!--

            <Valve className="org.apache.catalina.valves.AccessLogValve"

             directory="logs"  prefix="localhost_access_log." suffix=".txt"

             pattern="common" resolveHosts="false"/>

      -->

    -------------------------------------------tomcat日志内容详解

    #可配置项(5类日志):catalina、localhost、manager、admin、host-manager
    handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler,
    3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
     
    #日志输出为输出到文件和输出到控制台
    .handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
     
    #日志输出级别:SEVERE (最高级别) > WARNING > INFO > CONFIG > FINE > FINER(精心) > FINEST (所有内容,最低级别)
    #配置文件使catalina日志输出级别为FINE
    1catalina.org.apache.juli.FileHandler.level = FINE
    #catalina文件输出位置
    1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
    #catalina日志前缀为catalina
    1catalina.org.apache.juli.FileHandler.prefix = catalina.
     
    #配置文件使localhost日志输出级别为FINE
    2localhost.org.apache.juli.FileHandler.level = FINE
    #localhost文件输出位置
    2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
    #localhost日志前缀为localhost
    2localhost.org.apache.juli.FileHandler.prefix = localhost.
     
    #配置文件使manager日志输出级别为FINE
    3manager.org.apache.juli.FileHandler.level = FINE
    #manager文件输出位置
    3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
    #manager日志前缀为manager
    3manager.org.apache.juli.FileHandler.prefix = manager.
     
    #配置文件使host-manager日志输出级别为FINE
    4host-manager.org.apache.juli.FileHandler.level = FINE
    #host-manager文件输出位置
    4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
    #host-manager日志前缀为host-manager
    4host-manager.org.apache.juli.FileHandler.prefix = host-manager.
     
    #配置文件使控制台日志输出级别为FINE
    java.util.logging.ConsoleHandler.level = FINE
    #控制台日志输出格式
    java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
    #上面的输出格式类似:
    #  四月 24, 2018 6:49:32 下午 org.apache.catalina.startup.Catalina start
    #  信息: Server startup in 9772 ms
    #比较丑,可以输出这种格式:24-Apr-2018 18:52:16.134 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 12631 ms
    #java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
     
    #localhost日志文件输出级别为INFO
    org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
    #localhost日志文件输出处理类2localhost.org.apache.juli.FileHandler
    org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler
     
    #manager日志文件输出级别为INFO
    org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
    #manager日志文件输出处理类3manager.org.apache.juli.FileHandler
    org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler
     
    #host-manager日志文件输出级别为INFO
    org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
    #host-manager日志文件输出处理类4host-manager.org.apache.juli.FileHandler
    org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler

    展开全文
  • sts4使用外置tomcat7无法导入项目war包 看报错 Tomcat version 7.0 only supports J2EE1.2,1.3,1.4, and JavaEE...结果还是这样,我都感觉其他什么东西版本出了问题 抱着试一试的心态下载了tomcat9 终于好了 ...

    sts4使用外置tomcat7无法导入项目war包

    在这里插入图片描述
    看报错是
    Tomcat version 7.0 only supports J2EE1.2,1.3,1.4, and JavaEE 5
    Tomcat版本7.0只支持J2EE1.2、1.3、1.4和JavaEE 5

    and 6 Web modules
    和6个Web模块

    得出tomcat版本问题
    我又去下载了8.5
    在这里插入图片描述
    结果还是这样,我都感觉是其他什么东西版本出了问题
    抱着试一试的心态下载了tomcat9
    在这里插入图片描述
    终于好了

    展开全文
  • 特别注意一点:表格里面的X表示拥有权限,也就是说,manager的权限最大的,什么都能操作(不推荐配置)。 Features by Role probeuser poweruser poweruserplus manager Context: list X X X X ...
  • 天看了一些网上的tomcat数据库连接池配置的东西,但是一直没配好,主要原因网上的文章几乎没有针对tomcat 7进行配置的,而且针对SQL SERVER的也不多,今天上午看了官方的文档,花了一上午时间终于配置好了数据库...

      昨 天看了一些网上的tomcat数据库连接池配置的东西,但是一直没配好,主要原因是网上的文章几乎没有针对tomcat 7进行配置的,而且针对SQL SERVER的也不多,今天上午看了官方的文档,花了一上午时间终于配置好了数据库连接池,这里发给大家看看,如果有什么疑问就留言吧。 

      首先我们需要向项目中导入tomcat-dbcp.jar 、servlet-ap.jar和sql server的驱动sqljdbc4.jar 包到 web-inf 文件夹下的lib目录 。 

       然后增加context.xml 

      这 里有两种方法,第一种是在tomcat程序目录下面的conf/context.xml里面修改,这里修改之后所有的程序   都将覆盖数据库连接池,但是 这种方法不够灵活。这里我们选择第二种方法 在项目的Web-content/meta-inf 目录下创建一个context.xml文件,在里面添加如下内容: 

     

    <Context path="/SYSDEMO" docBase="SYSDEMO" 
    
    reloadable="true" crossContext="true"> 
    
    <Resource name="jdbc/SYSDEMO" auth="Container" type="javax.sql.DataSource" 
    
    maxActive="100" maxIdle="30" maxWait="10000" 
    
    username="lenovo" password="lenovo" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
    
    url="jdbc:sqlserver://202.115.90.241:1433;DatabaseName=SYSDEMO"/> 
    
    </Context> 

       这里需要修改的是 将所有的SYSDEMO改为你自己的使用的数据库的名称 


       将driverClassName改为你所使用数据库的驱动,这里是SQL SERVER的驱动。 

       将url改为jdbc链接该数据库的地址,这里是SQL SERVER的地址, 

       将username 、password改为你自己数据库用户名和密码 

       maxActive="100" maxIdle="30" maxWait="10000" 

       可以将这三个参数进行修改, 

       第一个是最大活动的连接数 

       第二个是最大的未连接数 

       第三个是最长的等待时间,单位是毫秒 


       然后再修改项目的webContent/web-inf/web.xml文件 

       添加如下内容 

     

    <resource-ref> 
    
    <description>DB Connection</description> 
    
    <res-ref-name>jdbc/SYSDEMO</res-ref-name> 
    
    <res-type>javax.sql.DataSource</res-type> 
    
    <res-auth>Container</res-auth> 
    
    </resource-ref> 

     

       这里必须要改的是  <res-ref-name>jdbc/SYSDEMO</res-ref-name> 

       改为 jdbc/你自己的数据库 

       好了然后就可以使用了。 

       如下是我测试的servlet文件 

     

    import java.io.IOException; 
    
    import java.sql.Connection; 
    
    import java.sql.SQLException; 
    
    
    
    import javax.naming.Context; 
    
    import javax.naming.InitialContext; 
    
    import javax.servlet.ServletException; 
    
    import javax.servlet.annotation.WebServlet; 
    
    import javax.servlet.http.HttpServlet; 
    
    import javax.servlet.http.HttpServletRequest; 
    
    import javax.servlet.http.HttpServletResponse; 
    
    import javax.sql.DataSource; 
    
    
    
    @WebServlet("/TestPool") 
    
    public class TestPool extends HttpServlet { 
    
    private static final long serialVersionUID = 1L; 
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    
    try{ 
    
    Context initContext = new InitialContext(); 
    
    Context envContext  = (Context)initContext.lookup("java:/comp/env"); 
    
    DataSource ds = (DataSource)envContext.lookup("jdbc/SYSDEMO"); 
    
    Connection conn = ds.getConnection(); 
    
    System.out.println("成功了。。。。。。。。。。"); 
    
    }catch(Exception e){ 
    
    System.out.println("出错了。。。。。。。。。。。。。。。。。。"); 
    
    e.printStackTrace(); 
    
    } 
    
    
    } 
    
    } 

       将 DataSource ds = (DataSource)envContext.lookup("jdbc/SYSDEMO"); 


       “jdbc/SYSDEMO” 的sysdemo改为你前面使用的数据库的名称即可。 

       好了。大功告成。

    展开全文
  • 先介绍一下背景吧:最近看javaEE7中可能发布的JSR规范,偶然看到JSR356,关于web socket的,当时觉得奇怪,心说socket这几年又出了什么东西出来了?早上了解了一下,原来也HTML5里面的,Google工程师的这段话...

    先介绍一下背景吧:最近看javaEE7中可能发布的JSR规范,偶然看到JSR356,是关于web socket的,当时觉得奇怪,心说socket这几年又出了什么新东西出来了?早上了解了一下,原来也是HTML5里面的,Google工程师的这段话还是挺有吸引力的“数据的字节数急剧减少到2字节,延迟从150毫秒减少到50毫秒,实际上,这两个因素已经足以引起Google的兴趣了。通过在一个浏览器中模拟全双工连接,HTML 5 Web Socket对Web通信带来了显著的改善。”而目前一般的实时Web程序是通过Ajax轮询服务器的方式来实现的,其缺点显而易见,定时发送请求导致网络上的大量无意义数据,而且不断的连接将大量消耗服务器资源。

    而Web Socket相比较的优点是:1,服务器与客户端之间交换的标头信息很小,大概只有2字节(早期版本)。2,服务器可以主动传送数据给客户端(比现有的客户端不断轮询方式好太多了)。

     

    这概念看起来是真不错,好吧,其它废话就不多说了。上例子。

    我的web服务器是从Apache tomcat网站上下载的apache-tomcat-7.0.40,浏览器用的最新的Chrome(26.0.1410.64 m)。

     

    在Eclipse里建一个Dynamic Web Project,后台写一个继承自WebSocketServlet的Servlet

    package org.study.webSocket;
    
    import java.io.IOException;
    import java.nio.ByteBuffer;
    import java.nio.CharBuffer;
    import java.util.logging.Logger;
    
    import javax.servlet.http.HttpServletRequest;
    
    import org.apache.catalina.websocket.MessageInbound;
    import org.apache.catalina.websocket.StreamInbound;
    import org.apache.catalina.websocket.WebSocketServlet;
    import org.apache.catalina.websocket.WsOutbound;
    
    /**
     * @author niwei
     * 
     */
    // 处理WebSocket的Servlet需要继承自WebSocketServlet
    public class EchoServlet extends WebSocketServlet {
    
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = -328927602003370849L;
    
    	// Log
    	private Logger logger = Logger.getLogger(EchoServlet.class.getName());
    
    	@Override
    	/**
    	 * 与7.0.27不同的,Tomcat改变了createWebSocketInbound方法的定义,增加了一个HttpServletRequest参数,
    	 * 这样我们也可以从request参数中获取更多请求方的信息 
    	 * 
    	 */
    	protected StreamInbound createWebSocketInbound(String subProtocol,
    			HttpServletRequest request) {
    		logger.info("request ws servlet");
    
    		/**
    		 * 方法仍然是返回一个StreamInbound实例,这里采用实现他的子类MessageInbound
    		 * 只用实现下面四个事件处理函数(其实onClose和onOpen有缺省实现)
    		 */
    		return new MessageInbound() {
    
    			// WebSocket关闭事件,参数status应该来自org.apache.catalina.websocket.Constants中定义常量
    			@Override
    			protected void onClose(int status) {
    				logger.info("Web Socket Closed: " + status);
    			}
    
    			// WebSocket握手完成,创建完毕,WsOutbound用于向客户端发送数据
    			@Override
    			protected void onOpen(WsOutbound outbound) {
    				logger.info("Web Socket Open!");
    			}
    
    			// 有二进制消息数据到达,暂时没研究出这个函数什么情况下触发,js的WebSocket按理说应该只能send文本信息才对
    			@Override
    			protected void onBinaryMessage(ByteBuffer buffer)
    					throws IOException {
    				logger.info("Binary Message Receive: " + buffer.remaining());
    			}
    
    			// 有文本消息数据到达
    			@Override
    			protected void onTextMessage(CharBuffer buffer) throws IOException {
    				logger.info("Text Message Receive: " + buffer.remaining());
    				// getWsOutbound可以返回当前的WsOutbound,通过他向客户端回传数据,这里采用的是nio的CharBuffer
    				getWsOutbound().writeTextMessage(buffer);
    
    				// 模拟服务器通知浏览器,从浏览器就会看,每3秒收到1条服务器消息
    				for (int i = 0; i < 3; i++) {
    					try {
    						Thread.sleep(3000);
    					} catch (InterruptedException e) {
    						e.printStackTrace();
    					}
    					getWsOutbound().writeTextMessage(
    							CharBuffer
    									.wrap(String.valueOf(Math.random())));
    				}
    
    			}
    		};
    	}
    
    }

    在web.xml里面配置一下该servlet

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    	id="WebApp_ID" version="2.5">
    	
    	<welcome-file-list>
    		<welcome-file>index.jsp</welcome-file>
    	</welcome-file-list>
    	
    	<servlet>
    		<servlet-class>org.study.webSocket.EchoServlet</servlet-class>
    		<servlet-name>EchoServlet</servlet-name>
    	</servlet>
    	
    	<servlet-mapping>
    		<servlet-name>EchoServlet</servlet-name>
    		<url-pattern>/EchoServlet</url-pattern>
    	</servlet-mapping>
    </web-app>

    客户端访问的代码直接写在项目的欢迎页里:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>web socket example</title>
    <script type="text/javascript">  
        var ws = null;
        
        function startServer() {
            // 设定WebSocket,注意协议是ws,请求是指向对应的WebSocketServlet的,
            // localhost:8080/web-socket是你实际web项目发布的地址,
            // 后面的/EchoServlet是在上面web.xml里配置的servlet访问的url
            var url = "ws://localhost:8080/web-socket/EchoServlet"; 
            // 创建WebSocket实例,chrome浏览器使用
            if ('WebSocket' in window) {
                ws = new WebSocket(url);
            } else {
                alert('Unsupported.');
                return;
            }
            
            // WebSocket握手完成,连接成功的回调
            // 有个疑问,按理说new WebSocket的时候就会开始连接了,如果在设置onopen以前连接成功,是否还会触发这个回调
            ws.onopen = function() {
                alert('Opened!');
            };
            
            // 收到服务器发送的文本消息, event.data表示文本内容
            ws.onmessage = function(event) {
                alert('Receive message: ' + event.data);
            };
            
            // 关闭WebSocket的回调  
            ws.onclose = function() {
                alert('Closed!');
            };
        }
        
        function sendMyMessage() {
            var textMessage = document.getElementById('textMessage').value;
            
            if (ws != null && textMessage != '') {
                // 通过WebSocket想向服务器发送一个文本信息
                ws.send(textMessage);
            }
        }
    </script>
    </head>
    <body>
    <body οnlοad="startServer()">
    	<input type="text" id="textMessage" size="20" />
    	<input type="button" οnclick="sendMyMessage()" value="Send">
    </body>
    </html>

     关于代码的要说明的东西在注释里,不再赘述了。

    直接访问项目路径即可。

     

    项目源代码在附近里面。

    展开全文
  • Tomcat 总体结构

    2017-11-24 14:33:00
    Tomcat 架构探索 發表於2016-06-25 | ...花了一个礼拜的时间阅读了how tomcat works,本文基于此书,整理了一下Tomcat 5的基本架构,其实也没什么多复杂的东西,无非解析Http...
  • 但是发现有一个页面没有成功加载,发现部署时少了一些东西。也不想去找出具体少了什么,直接把原来的项目移除,重新加载项目。重启tomcat,这时惊喜来了。 重启完tomcat,用浏览器访问https://XXXXXXX:8443。结果...
  • linux下安装tomcat

    2018-01-11 10:34:25
    一开始,笔者并不太懂,为什么linux这样流行,难道开源的就很好,还是免费促使大家都喜欢他,还是命令窗口操作更显高端?(哈哈,这里只是发泄哈我手残党以及背不到...部署环境centos7+apache-tomcat-7.0.82+jd
  • 我在官网上下载了apache-tomcat-7.0.37-windows-x86 ,解压后双击bin下的tomcat7.exe图标,打不开,我怀疑没配置什么东西,求各位高人指点,万分感谢!我电脑win7 32为系统
  • 其实两个不同的东西。NIOreactor模式,平常说的基本只这个,比如说典型的Netty便NIO扩建。NIO2则不同,preator模式,async io。async io指client端只需提交请求,由操作系统来负责在事件就绪后回调...
  • 转载自 :https://blog.csdn.net/hj7jay/article/details/51661431...说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了。摘一段百度百科上的描述: 反向代理(Reverse Proxy)方式指...
  • how-tomcat-works

    2011-06-30 13:09:09
    说明:10分虽然有点高 但东西值 重点 我也只想搞点分数下东西 谢谢支持 目录 I 简介 1 概览 1 适合读者 1 servlet容器如何工作的 1 catalina结构图 1 tomcat的版本4和版本5 2 章节简介 2 第1章 一个简单的Web...
  • [img]http://dl.iteye.com/upload/attachment/0063/5116/a24d8c03-22b6-3ead-bcd1-32e7fd737272.jpg[/img] ...很多人都在做web项目的时候用到了它,但是它神马东西呢?有什么功能呢?它怎么...
  • 控制台里这样的 ``` 严重: The required Server ...但是没什么用,还有一个叫maven的东西,我后来把C盘里的这个玩意的整个文件都删除了,然后又重新下载,但是这服务器还是没法用,求教,有没有哪位大佬帮我看看
  • 首先我用的myeclipse10,tomcat7, 在myeclipse外面tomcat运行能进入8080,在myclipse里面启动就进不去。 以下tomcat的配置! ![图片说明](https://img-ask.csdn.net/upload/201806/26/1529966489_992722.png)...
  • 什么东西都不进行操作,就是简单的进行启去和关闭。 PS:我的LINUX服务器,在VMWARE WORKSTATION服务器上运行。 [b]问题补充:[/b] 里面什么项目也没有,也会出一样的错误。 [b]问题补充:[/b] 我就是用...
  • 关于nginx是什么,bing上都有比较详尽的介绍。 首先准备装有Linux系统的虚拟机,这里使用的是ubuntu,centos 7 的input有点问题,比如说打开浏览器,在地址栏上输入w会导致浏览器关闭。这里有些需要注意的问题,就是...
  • 7 指定欢迎页 ...这样的包含一个目录名但没有包含文件名的URL,会发生什么事情呢?用户能得到一个目录表?一个错误?...index.html、index.jsp、default.html、default.htm或别的什么东西呢? Welcome-file-l
  • 说明:10分虽然有点高 但东西值 重点 我也只想搞点分数下东西 谢谢支持 目录 I 简介 1 概览 1 适合读者 1 servlet容器如何工作的 1 catalina结构图 1 tomcat的版本4和版本5 2 章节简介 2 第1章 一个简单的Web...
  • 7 指定欢迎页假如用户提供了一个像http://host/webAppPrefix/directoryName/ 这样的包含一个目录名但...如果得到标准文件内容,index.html、index.jsp、default.html、default.htm或别的什么东西呢?Welcome-file-
  • 这个是tomcat中的jar包,明明就已经有了。 <p><br><img src="http://dl.iteye.com/upload/attachment/227310/5d1a9a33-0081-3706-9f92-c262852478bf.jpg" alt=""></p> 并且环境变量也已经配好了 <p><br>...
  • 7 指定欢迎页 假如用户提供了一个像...用户能得到一个目录表?...如果得到标准文件内容,index.html、index.jsp、default.html、default.htm或别的什么东西呢? Welco...
  • 7 指定欢迎页 假如用户提供了一个像http://host/webAppPrefix/directoryName/ 这样的包含一个目录名但...如果得到标准文件内容,index.html、index.jsp、default.html、default.htm或别的什么东西呢?Welcome-file-li
  • 笔记: 怎么去查机器的性能 Tomcat的默认线程数200,TPS可以...为什么先看CPU,因为所有东西运行在CPU top命令: 命令的详细讲解:、 http://www.man7.org/linux/man-pages/man8/vmstat.8.html http:/...

空空如也

空空如也

1 2 3 4
收藏数 78
精华内容 31
关键字:

tomcat7是什么东西