- 浏览: 174576 次
- 性别:
- 来自: 北京
最新评论
-
chainhou:
sunshineman 写道maven 编译不过啊,连不上ec ...
jetty的下载,编译,安装等 -
sunshineman:
maven 编译不过啊,连不上eclipse的proxy
jetty的下载,编译,安装等
文章列表
在写微信公众号『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中有用的查找端口占用的命令
- 博客分类:
- 常见问题
在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,虚拟机就可以正常使用了。
JConsole背后
- 博客分类:
- 开源软件和算法
最近做监控相关的事情,要把本地的所有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,下 ...