`
chainhou
  • 浏览: 174576 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
在写微信公众号『Tomcat那些事儿』的时候,有不少读者看过文章会问一些其他问题,包括在群里,其实一些内容在官方文档里写的比较清楚,甚至包含一些原理性的内容。为了方便读者,近期翻译了一些官方文档,后续会陆续更新完。   1 总体介绍 2. Tomcat安装 3. Tomcat应用部署   后续敬请期待,欢迎关注公众号『Tomcat那些事儿』。  
新安装了一个tomcat6,安装完之后在webapps下面会有一些tomcat自带的项目(ROOT、manager、host-manager...) 把这些没用的项目删掉之后,启动tomcat 报如下错误 [html] view plaincopy在CODE上查看代码片派生到我的代码片 java.lang.IllegalArgumentException: Document base D:\tomcat\webapps\host-manager does not exist or is not a readable directory      at org.apache.naming.res ...
NIO oomParachute的作用 在Server启动的时候,启动NIO连接器,此时判断oomParachute的配置是否大于0,由于默认为 1024 * 1024, 因此在执行NioEndpoint.bind时, bind() { ... if (oomParachute>0) reclaimParachute(true); ... }     protected boolean reclaimParachute(boolean force) {         if ( oomParachuteData != null ) return true;         if ( ...
最近有个朋友问我:引用tomcat的session存在哪里? 答:内存中。又问:引用那既然都保存在内存中,要清除过期的sesion时,又怎么能区分是哪个应用的session而不会清除错误? 答:(当时没看过这块的代码),说由于每个应用对应一个Session管理,此处应该有类似于数组之类的东西,将该应用的session管理起来,当该应用移除或者某些sesion过期时可以准确的删除掉。最近看了下代码,对比下源码,发现回复的还行,没有特别大的出入。 我们的应用中一般都会用到session,那这个session在应用服务器内部到底是怎么保存到处理的呢? 当我们请求一个应用时,如果页面中用到了ses ...
最近在做应用服务器的CTS测试时发现这样一个问题,跑测试用例过程中,许多用例会提示“[<openjpa-2.2.0-r422266:1244990 fatal store error> org.apache.openjpa.util.ObjectExistsException: Cannot add or update a child row: a foreign key constraint fails ” 仔细看了下用例的代码,发现出错的地方是数据库中的表存在外键,而在用例的代码中并没有先持久化外键关联的数据,而是直接持久化包含关联的数据导致问题的。说的有点绕,举个例子:例如Us ...
在使用Servlet3.0的异步特性时,免不了会遇到下面这个异常 java.lang.IllegalStateException: The request associated with the AsyncContext has already completed processing. at org.apache.catalina.core.AsyncContextImpl.check(AsyncContextImpl.java:521) at org.apache.catalina.core.AsyncContextImpl.getRespons ...
在使用Servlet3.0的新特性中关于WebFragment的特性,即将一些功能打包到jar包中,在web-fragment.xml中声明一些Servlet、Filter,如果使用annotation,此处基本不需要什么配置就可以。 将各个功能的jar加到某个Web应用中,该Web应用就具有了jar包中声明的这些功能。 但在使用Eclipse开发的时候,比如新创建了两个Web Fragment Project,并将其加到某个Web应用中,此时部署到Web容器中会产生如下异常信息 The display name was defined in multiple fragments with d ...
在使用Servlet3.0的异步特性的时候,经常会遇到如下异步,表示不支持异步特性。 在Tomcat中的异常是: 引用 java.lang.IllegalStateException: Not supported. at org.apache.catalina.connector.Request.startAsync(Request.java:1673) 在Jetty中是: java.lang.IllegalStateException: !asyncSupported at org.eclipse.jetty.server.Request.startAsync(Request.jav ...
JAVA开发中有时会出现ConcurrentModificationException,该异常是由于在遍历Collection的时候做了删除或者增加的操作,此时原来统计的size和新的size并不一致,产生了该异常。下面是stackOverflow上的解释: 引用 Here's why: As it is says in the Javadoc:     The iterators returned by this class's iterator and listIterator methods are fail-fast: if the list is structurally modif ...
在windows中可以使用如下命令,查看端口昌被哪个程序占用。 C:\Users\ho>netstat -aon | findstr "8080" TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 7528 TCP [::]:8080 [::]:0 LISTENING 7528 C:\Users\ho>tasklist | findstr "7528" java ...
在做JMX相关的开发过程中,下面这个异常一个会遇到: 2013-7-11 15:58:05 ClientCommunicatorAdmin restart 警告: Failed to restart: java.io.IOException: Failed to get a RMI stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 10.10.4.18; nested exception is: ...
之前开发中用到JMX的地方,如果需要根据ObjectName中某个特定值进行判断,都是把ObjectName执行toString()后,再截取字符串,今天发现原来ObjectName中有个方法 /** * Obtains the value associated with a key in a key property. * * @param property The property whose value is to be obtained. * * @return The value of the property, or n ...
当启动Apache时,如果弹出窗口提示引用unable to open logs,在windows的事件日志是说明 The Apache service named reported the following error: >>> Unable to open logs . 这种情况是本地有程序和Apache的端口冲突,导致Apache启动异常。常见的是Apache的80端口被占用。 解决方式:更改端口 以下信息转自StackOverFlow: 引用 The following error usually means that some other pro ...
今天把VBox中的进程强制停止后,启动VBox的时候,Ubuntu出错,不能启动,菜单中只有刷新,什么都不能操作了,出错信息大概如下: Runtime error opening 'xxx/xxx/xx.vbox' for reading: -102 (File not Found)..... 不知道怎么去解决了,网上的解决方式是在linux系统下的,后来找到个国外的网站查到了方法,其实只需要把Vobx下虚拟机的vbox文件重命名就可以了。异常关机后,vbox文件被重命令为xxx.vbox-temp,只要把-temp去掉,再次打开VBox,虚拟机就可以正常使用了。
最近做监控相关的事情,要把本地的所有JAVA应用管理起来,但这些应用的JDK1.4的,有1.5的,1.6的,而且在JDK1.5之前的应用提供的MBeanServer并不是PlatformMBeanServer,这就导致监控时获取堆的信息,线程,Runtime等一些属性的时候没法获取。本打算改造运行在JDK1.4上跑的应用,使其使用PlatFormMBeanServer,但JDK1.4好像并没有提供获取PlatFormMBeanServer的方式,大致想到了以下几个思路: 1.升级JDK,但可能会影响原来应用,因为JDK1.4的时候一些语法像enum这些都还不是关键字。 2.如果可以升级JDK,下 ...
Global site tag (gtag.js) - Google Analytics