为什么不';是否在所选包中运行take java类的ajax调用?
我正在使用Ajax、jsp和Java构建一个应用程序。 当我通过Ajax调用调用Java反射时,我遇到了这个问题。这就是错误:为什么不';是否在所选包中运行take java类的ajax调用?,java,ajax,reflection,package,classpath,Java,Ajax,Reflection,Package,Classpath,我正在使用Ajax、jsp和Java构建一个应用程序。 当我通过Ajax调用调用Java反射时,我遇到了这个问题。这就是错误: Feb 22, 2014 11:39:13 AM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [optSim] in context with path [/Manager] threw exception java.lang
Feb 22, 2014 11:39:13 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [optSim] in context with path [/Manager] threw exception
java.lang.RuntimeException: No resource for it/Manager/Support
引发异常的代码是:
public static Vector<Class> getClassesForPackage(Package pkg) {
String pkgname = pkg.getName();
Vector<Class> classes = new Vector<Class>();
// Get a File object for the package
File directory = null;
String fullPath;
String relPath = pkgname.replace('.', '/');
System.out.println(System.getProperty("java.class.path"));
// System.out.println("ClassDiscovery: Package: " + pkgname +
// " becomes Path:" + relPath);
System.out.println(System.getProperty("java.class.path"));
URL resource = ClassLoader.getSystemClassLoader().getResource(relPath);
// System.out.println("ClassDiscovery: Resource = " + resource);
if (resource == null) {
throw new RuntimeException("No resource for " + relPath);
}
....
公共静态向量getClassesForPackage(Package-pkg){
字符串pkgname=pkg.getName();
向量类=新向量();
//获取包的文件对象
文件目录=null;
字符串完整路径;
字符串relPath=pkgname.replace('.','/');
System.out.println(System.getProperty(“java.class.path”);
//System.out.println(“类发现:包:”+pkgname+
//“变为路径:”+relPath);
System.out.println(System.getProperty(“java.class.path”);
URL resource=ClassLoader.getSystemClassLoader().getResource(relPath);
//System.out.println(“ClassDiscovery:Resource=“+Resource”);
if(资源==null){
抛出新的RuntimeException(“没有“+relPath”的资源);
}
....
在input中,此方法获取包名,并搜索所选包中的类。
问题是,如果我在没有Ajax的情况下通过jar文件调用该方法,那么该方法将正确运行,否则将返回一个错误
我打印javaclass路径,它包含目录src,其中是it/Manager/Support
我认为问题在于tomcat配置
有人能帮我吗
非常感谢解决方案是:
URL resource = Thread.currentThread().getContextClassLoader().getResource("path");
因为当ajax调用java代码时,我必须选择线程类加载器,否则java不知道类加载器取的是什么!