2014-05-08 11:00:03

java 反射运行时加载外部jar到Tomcat StandardClassLoader

加载jar这一部分很容易,可是卸载jar就没那么容易了。加载jar的时候需要用反射去调用URLClassLoader的addURL方法。Tomcat的StandardClassLoader继承于URLClassLoader。 <%@ page language="java" pageEncoding="UTF-8"%> <%@ page import="java.util.*"%> <%@page import="java.net.URL"%> <%@page import="java.lang.reflect.Method"%> <%@page import="java.net.URLClassLoader"%> <% URLClassLoader c = (URLClassLoader) getClass().getClassLoader().getParent().getParent(); URL jar = new URL("http://javaweb.org/jars.jar"); try { Method m = URLClassLoader.class.

2014-02-27 16:18:05

Tomcat7源码eclipse(mvn)

打包好的eclipse项目下载:Tomcat7.0.zip 需要先分别Tomcat7二进制文件下载:apache-tomcat-7.0.52.zip 和 Tomcat7源文件: apache-tomcat-7.0.52-src.zip。然后需要安装好maven环境:Maven。参考原文:http://zhh2009.iteye.com/blog/1557891 新建一个Tomcat7目录,解压apache-tomcat-7.0.52.zip到Tomcat7目录并更改apache-tomcat-7.0.52为 trunk,解压apache-tomcat-7.0.52-src.zip到Tomcat7目录并更改apache-tomcat-7.0.52-src为launch。用这个二进制分发包而不是从源代码构建只是为了节省时间,直接用它conf目录里面的配置文件和webapps下的例子。 新建pom.xml,内容: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 ht

2014-01-24 11:42:12

Tomcat7.0.30以上全局Filter加载顺序问题

好吧又被Tom猫坑了,因为上一次是解决Tomcat6和Tomcat7的加载问题被坑了。Tomcat 版本带来的web.xml filter和servlert配置的变化 。昨天测试发现Tomcat7.0.30再一次修改了Filter的加载顺序。 在org.apache.catalina.core.ApplicationFilterRegistration.java的版本变动(修改74-78行、103-107行): 对比下发现加载的顺序变化了,Tomcat7.0.29的isMatchAfter判断的顺序反了。所以想办法把 顺序弄回去就行了。把context.addFilterMapBefore(filterMap);换到if里面ok。 修改完源码把catalina.jar里面的class文件替换,一切正常。

2013-12-11 23:25:13

Tomcat 处理GET乱码

Tomcat的conf下server.xml默认有个uri编码,可以解决GET请求编码问题。 <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />