当项目碰到类冲突,真的很恼火,
Caused by: java.lang.NoSuchMethodError: com.BossPkgHead2.<init>(JLjava/lang/String;)V
于是有了下面这个做法:
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<%@page import="org.springframework.core.io.support.PathMatchingResourcePatternResolver"%>
<%@page import="org.springframework.core.io.Resource"%>
<%
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
Resource[] resources = resolver
.getResources("classpath*:/com/BossPkgHead2.class");
out.println("test:" + resources.length + "<br>");
for (Resource resource : resources)
{
out.println(resource.getURI() + "<br>");
}
%>
将jsp放到项目中访问一下,通过resolver取获取指定的class文件,可以得到类冲突的具体描述:
test:2
jar:file:/usr/local/brand/commonlib/com.common-2.0.0.jar!/com/BossPkgHead2.class
jar:file:/usr/local/brand/commonlib/com.protocol-1.0.0.jar!/com/BossPkgHead2.class
raywu同学确实比较高,呵呵。
本文探讨了在项目开发中遇到类冲突时的解决策略,通过使用PathMatchingResourcePatternResolver来获取指定类文件,清晰地揭示了冲突来源。raywu同学的方法值得借鉴。
2916

被折叠的 条评论
为什么被折叠?



