应用程序从java6迁移到java7
我正在使用一些专有的应用服务器(用于SIP协议),其中我们使用嵌入式tomcat(用于HTTP协议)。我们用Java1.6u21运行这个 现在我想使用java 1.7u51,所以我已经在java 1.7u51上编译了所有代码。当我启动服务器时,我得到以下错误:应用程序从java6迁移到java7,java,java-7,Java,Java 7,我正在使用一些专有的应用服务器(用于SIP协议),其中我们使用嵌入式tomcat(用于HTTP协议)。我们用Java1.6u21运行这个 现在我想使用java 1.7u51,所以我已经在java 1.7u51上编译了所有代码。当我启动服务器时,我得到以下错误: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.session.StandardManager[]] a
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)
org.apache.catalina.LifecycleException:无法启动组件[org.apache.catalina.session.StandardManager[]
位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
位于org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5294)
位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
在java.util.concurrent.FutureTask.run(FutureTask.java:262)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
运行(Thread.java:744)
原因:java.lang.IllegalAccessError:尝试从类sun.security.provider.sun访问类sun.security.provider.sun条目
位于sun.security.provider.sun.(sun.java:55)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:526)
位于java.lang.Class.newInstance(Class.java:374)
位于sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:221)
位于sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:206)
位于java.security.AccessController.doPrivileged(本机方法)
位于sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:206)
位于sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:187)
位于sun.security.jca.ProviderList.getProvider(ProviderList.java:232)
位于sun.security.jca.ProviderList.getService(ProviderList.java:330)
位于sun.security.jca.GetInstance.GetInstance(GetInstance.java:157)
位于java.security.cert.CertificateFactory.getInstance(CertificateFactory.java:183)
位于sun.security.pkcs.PKCS7.parseSignedData(PKCS7.java:271)
位于sun.security.pkcs.PKCS7.parse(PKCS7.java:158)
位于sun.security.pkcs.PKCS7.parse(PKCS7.java:126)
位于sun.security.pkcs.PKCS7(PKCS7.java:108)
在sun.security.util.SignatureFileLeverifier.java:96
位于java.util.jar.JarVerifier.processEntry(JarVerifier.java:286)
位于java.util.jar.JarVerifier.update(JarVerifier.java:218)
位于java.util.jar.JarFile.initializeVerifier(JarFile.java:345)
位于java.util.jar.JarFile.getInputStream(JarFile.java:412)
位于sun.misc.URLClassPath$JarLoader$2.getInputStream(URLClassPath.java:775)
位于sun.misc.Resource.cachedInputStream(Resource.java:77)
位于sun.misc.Resource.getByteBuffer(Resource.java:160)
位于java.net.URLClassLoader.defineClass(URLClassLoader.java:436)
在java.net.URLClassLoader.access$100(URLClassLoader.java:71)
在java.net.URLClassLoader$1.run(URLClassLoader.java:361)
在java.net.URLClassLoader$1.run(URLClassLoader.java:355)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:354)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:425)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:412)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:358)
位于sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:215)
位于sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:206)
我在网上搜索了一下,发现java.lang.IllegalAccessError
当我们在不同的java版本上编译了src,并在不同的版本上运行应用程序时,它就会出现。但就我而言,我已经在java1.7u51上编译并运行了这两个应用程序
你知道我为什么会遇到这个问题吗
仅供参考…我正在使用嵌入式tomcat 7。它看起来更像是jar版本的问题。若您正在使用任何第三方JAR,请确保类路径中有正确的版本,并再次重新编译整个应用程序并进行检查