2014-03-06 116 views
1

我正在使用一些专有的应用程序服务器(用于SIP协议),其中我们使用的是嵌入式tomcat(用于HTTP协议)。我们用java 1.6u21运行这个。应用程序从java6迁移到java7

现在我想用java 1.7u51,所以我已经编译所有我在服务器上启动java1.7u51.When的代码,我得到以下错误:

org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.session.StandardManager[]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5294) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:744) 
Caused by: java.lang.IllegalAccessError: tried to access class sun.security.provider.SunEntries from class sun.security.provider.Sun 
    at sun.security.provider.Sun.<init>(Sun.java:55) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at java.lang.Class.newInstance(Class.java:374) 
    at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:221) 
    at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:206) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:206) 
    at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:187) 
    at sun.security.jca.ProviderList.getProvider(ProviderList.java:232) 
    at sun.security.jca.ProviderList.getService(ProviderList.java:330) 
    at sun.security.jca.GetInstance.getInstance(GetInstance.java:157) 
    at java.security.cert.CertificateFactory.getInstance(CertificateFactory.java:183) 
    at sun.security.pkcs.PKCS7.parseSignedData(PKCS7.java:271) 
    at sun.security.pkcs.PKCS7.parse(PKCS7.java:158) 
    at sun.security.pkcs.PKCS7.parse(PKCS7.java:126) 
    at sun.security.pkcs.PKCS7.<init>(PKCS7.java:108) 
    at sun.security.util.SignatureFileVerifier.<init>(SignatureFileVerifier.java:96) 
    at java.util.jar.JarVerifier.processEntry(JarVerifier.java:286) 
    at java.util.jar.JarVerifier.update(JarVerifier.java:218) 
    at java.util.jar.JarFile.initializeVerifier(JarFile.java:345) 
    at java.util.jar.JarFile.getInputStream(JarFile.java:412) 
    at sun.misc.URLClassPath$JarLoader$2.getInputStream(URLClassPath.java:775) 
    at sun.misc.Resource.cachedInputStream(Resource.java:77) 
    at sun.misc.Resource.getByteBuffer(Resource.java:160) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:436) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:412) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:215) 
    at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:206) 

我搜索净,发现java.lang.IllegalAccessError它来,当我们在不同的版本上编译不同的Java版本和运行应用程序的SRC。但在我的情况下,我编译和运行的应用程序都在java1.7u51。

任何想法,为什么我得到这个问题。

仅供参考...我使用嵌入式的Tomcat 7

回答

0

看起来更罐子版本的问题。如果您使用任何第三方罐子,请确保正确的版本在课程路径中,并重新编译整个应用程序,然后检查它

相关问题