java delegating是什么?tomcat 启动抛出java.lang.IllegalArgumentException异常问题
本篇文章给大家谈谈java delegating是什么,以及tomcat 启动抛出java.lang.IllegalArgumentException异常问题对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
java.lang.ExceptionInInitializerError
你这个里面有没有动态代理生成的类的包名在已知的另一个 sealed jar包内?比如 microsoft的某个 java.sql.Connection的实现类的包名可能是 com.microsoft.sqlserver.jdbc.MSConnectionImpl,如果我们的 Spring AOP生成它的一个子类(包名当然也是 com.microsoft.sqlserver.jdbc了),而当这个 sqlserver驱动 jar本身的 META-INF/MANIFEST.MF中声明这个 jar是已经签名了并且 sealed了那么这就导致安全异常,因为 sealed声明表示 com.microsoft.sqlserver包是 M$提供的,出了问题找微软咨询,当我们把一个临时的类冒充是微软提供的就是篡改行为。
从你这个日志中还不能看出这点来,但我们需要检查有没有类似的情况,如果不是 AOP自动生成的类,我们只要保证不冒充它的包名就可以了。
下面这个无法断定是否有类似嫌疑。
java.security.AccessControlException: access denied(java.lang.RuntimePermission accessClassInPackage.org.apache.catalina.loader)
另外Tomcat上也可以配置当访问一些Tomcat平台的内部的类时需要配置权限,tomcat的实现类会先检查权限,一般目的就是防止有些程序想通过反射的方式访问服务器平台提供的一些内部功能,而服务器希望大家不要这样做除非你非常确定它可能的影响(比如移植性受限),因此服务器可能会默认地会给服务器自已配置权限并且在服务器中明确的启用了 Java 2 Security功能,这样当我们写一个自定义的 LifeCycleListener时访问了这些内部的实现类时就会出错,我们需要明确的配置权限给我们的 LifeCycleListener来确实你已经了解了这个事实。
比如下面这个文档中就配置了访问某些包的权限,当我们没有配置时就表示我们不了解服务器期望的事情,我们需要先思考再决定是否这样配置。
http://pic.dhe.ibm.com/infocenter/brjrules/v7r0/index.jsp?topic=%2Filog.rules.jrules.install.doc%2FContent%2FBusiness_Rules%2FDocumentation%2F_pubskel%2FJRules_Application_Servers%2Fps_Installing_JRules_Sun9.html
java.lang.reflect.InvocationTargetException错误,求助,急!
同学遇到过一种,我猜测是不是你自己又写了一个类的构造器,如:
class Person{
private String name;
public Person(String name){
this.name= name;
}
}
但是没有把默认构造器也写上,这样的话,如果你在某个类中写这样一句话
Person per= new Person();
这时程序运行时就会报错,原因是自定义的构造器覆盖了默认构造器,当你实例化对象Person时,调用默认构造器错误。
不知道这样可不可以,你试一下,如果不行的话,用JDK API查一下,这种工具应该是必备的,没有的话mail我,924190318@qq.com
tomcat 启动抛出java.lang.IllegalArgumentException异常问题
java.lang
类 IllegalArgumentException
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
java.lang.IllegalArgumentException
所有已实现的接口:
Serializable
直接已知子类:
IllegalCharsetNameException, IllegalFormatException, IllegalSelectorException, IllegalThreadStateException, InvalidKeyException, InvalidOpenTypeException, InvalidParameterException, KeyAlreadyExistsException, NumberFormatException, PatternSyntaxException, UnresolvedAddressException, UnsupportedAddressTypeException, UnsupportedCharsetException
--------------------------------------------------------------------------------
public class IllegalArgumentExceptionextends RuntimeException抛出的异常表明向方法传递了一个不合法或不正确的参数。
从以下版本开始:
JDK1.0
另请参见:
Thread.setPriority(int),序列化表格
--------------------------------------------------------------------------------
构造方法摘要
IllegalArgumentException()
构造不带详细消息的 IllegalArgumentException。
IllegalArgumentException(String s)
构造带指定详细消息的 IllegalArgumentException。
IllegalArgumentException(String message, Throwable cause)
根据指定的详细消息和原因构造一个新异常。
IllegalArgumentException(Throwable cause)
根据指定的原因和(cause==null? null:cause.toString())的详细消息构造一个新异常(它通常包含 cause的类和详细消息)。
方法摘要
从类 java.lang.Throwable继承的方法
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
从类 java.lang.Object继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
构造方法详细信息
IllegalArgumentException
public IllegalArgumentException()构造不带详细消息的 IllegalArgumentException。
--------------------------------------------------------------------------------
IllegalArgumentException
public IllegalArgumentException(String s)构造带指定详细消息的 IllegalArgumentException。
参数:
s-详细消息。
--------------------------------------------------------------------------------
IllegalArgumentException
public IllegalArgumentException(String message,
Throwable cause)根据指定的详细消息和原因构造一个新异常。
注意,与 cause相关的详细消息不是自动合并到这个异常的详细消息中的。
参数:
message-详细消息(保存此消息,以便以后通过 Throwable.getMessage()方法获取它)。
cause-原因(保存此原因,以便以后通过 Throwable.getCause()方法获取它)。(允许使用 null值,指出原因是不存在的或是未知的。)
从以下版本开始:
1.5
--------------------------------------------------------------------------------
IllegalArgumentException
public IllegalArgumentException(Throwable cause)根据指定的原因和(cause==null? null:cause.toString())的详细消息构造一个新异常(它通常包含 cause的类和详细消息)。此构造方法对于那些与其他 throwable(例如,PrivilegedActionException)的包装器相同的异常来说是有用的。
参数:
cause-原因(保存此原因,以便以后通过 Throwable.getCause()方法获取它)。(允许使用 null值,指出原因是不存在的或是未知的。)
从以下版本开始:
1.5
参考资料:JDK api1.6我可以发给你
文章到此结束,如果本次分享的java delegating是什么和tomcat 启动抛出java.lang.IllegalArgumentException异常问题的问题解决了您的问题,那么我们由衷的感到高兴!