eclipse 下无错的代码weblogic下报Unsupported major.minor version 51.0

md_shmily92 2016-08-10 08:31:08
我的项目是Struts升级到2.5.2后在tomcat下可以正常运行在weblogic下就会报错Unsupported major.minor version 51.0
现在已经使用的解决办法:eclipse下
1.window--》preferences--->install jre 换成jdk1.6安装路径
2.window--》preferences--->Compiler换成1.6
3.工程右键--》 prefercens-->buildpath jdk1.6或者 jre1.6安装路径
4.工程右键--》 prefercens-->Compiler和project facets换成1.6
项目重新编译打包部署到weblogic上还是不行
第二次修改了eclipse.ini文件,改成1.6和jdk1.6/bin的安装目录还是不行
第三次换了一个工作空间导入项目重新上面的配置还是不行。请问还有什么其他的方法?求各位大牛帮忙解决
...全文
314 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
md_shmily92 2016-08-15
  • 打赏
  • 举报
回复
引用 6 楼 mozhihao1000 的回复:
兄弟可有尝试设置这里?当然你设置你的1.6
我没有在eclipse里面集成weblogic ,不过还是谢谢。
md_shmily92 2016-08-15
  • 打赏
  • 举报
回复
引用 5 楼 skgary 的回复:
[quote=引用 4 楼 md_shmily92 的回复:]
package org.apache.struts2.interceptor;

import javax.servlet.http.HttpServletRequest;

public abstract interface ServletRequestAware
{
  public abstract void setServletRequest(HttpServletRequest paramHttpServletRequest);
}

/* Location:           D:\Program Files (x86)\Java\eclipseWork\hrss0809\WebContent\WEB-INF\lib\struts2-core-2.5.2.jar
 * Qualified Name:     org.apache.struts2.interceptor.ServletRequestAware
 * Java Class Version: 7 (51.0)
 * JD-Core Version:    0.5.3
 */
看了一下源码这里写着version 7,好像Struts2.5.2的jar包源码里面都是7,除了更换weblogic的jdk版本还有别的办法吗? 还有就是不懂为什么eclipse中用jdk6可以运行
源代码的version和class的version没关系。 我意思是,你下载到的这个jar包是用jdk 1.7编译的,这样你在运行时,自然用jdk1.6无法运行了。 所以,你要么下载源代码重新编译,要么就是把运行环境 升上去。[/quote] 原来我的tomcat编译时用的1,7怪不得可以运行。我把weblogic的jdk升级到1.7可以运行了,再试试编译源代码。谢谢了
skgary 2016-08-12
  • 打赏
  • 举报
回复
引用 4 楼 md_shmily92 的回复:
package org.apache.struts2.interceptor;

import javax.servlet.http.HttpServletRequest;

public abstract interface ServletRequestAware
{
  public abstract void setServletRequest(HttpServletRequest paramHttpServletRequest);
}

/* Location:           D:\Program Files (x86)\Java\eclipseWork\hrss0809\WebContent\WEB-INF\lib\struts2-core-2.5.2.jar
 * Qualified Name:     org.apache.struts2.interceptor.ServletRequestAware
 * Java Class Version: 7 (51.0)
 * JD-Core Version:    0.5.3
 */
看了一下源码这里写着version 7,好像Struts2.5.2的jar包源码里面都是7,除了更换weblogic的jdk版本还有别的办法吗? 还有就是不懂为什么eclipse中用jdk6可以运行
源代码的version和class的version没关系。 我意思是,你下载到的这个jar包是用jdk 1.7编译的,这样你在运行时,自然用jdk1.6无法运行了。 所以,你要么下载源代码重新编译,要么就是把运行环境 升上去。
黑仔zz- 2016-08-12
  • 打赏
  • 举报
回复

兄弟可有尝试设置这里?当然你设置你的1.6
skgary 2016-08-11
  • 打赏
  • 举报
回复
从你的描述来看,可能是由于 你引用的 struts.jar包是用高版本的jdk编译的。 所以,你可以试以下两条路: 1. 把你的struts 用源代码编译的方式重新做。 2. 把你weblogic的运行环境升到jdk1.7以上。
  • 打赏
  • 举报
回复
jdk版本低了
md_shmily92 2016-08-11
  • 打赏
  • 举报
回复
package org.apache.struts2.interceptor;

import javax.servlet.http.HttpServletRequest;

public abstract interface ServletRequestAware
{
  public abstract void setServletRequest(HttpServletRequest paramHttpServletRequest);
}

/* Location:           D:\Program Files (x86)\Java\eclipseWork\hrss0809\WebContent\WEB-INF\lib\struts2-core-2.5.2.jar
 * Qualified Name:     org.apache.struts2.interceptor.ServletRequestAware
 * Java Class Version: 7 (51.0)
 * JD-Core Version:    0.5.3
 */
看了一下源码这里写着version 7,好像Struts2.5.2的jar包源码里面都是7,除了更换weblogic的jdk版本还有别的办法吗? 还有就是不懂为什么eclipse中用jdk6可以运行
md_shmily92 2016-08-11
  • 打赏
  • 举报
回复
Caused By: java.lang.NoClassDefFoundError: org/apache/struts2/interceptor/ServletRequestAware
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:343)
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:302)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64)
at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:49)
at java.lang.ClassLoader.defineClass1(Native Method)

Caused By: java.lang.ClassNotFoundException: Class bytes found but defineClass()failed for: 'org.apache.struts2.interceptor.ServletRequestAware'
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:276)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)
at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:52)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:343)

Caused By: java.lang.UnsupportedClassVersionError: org/apache/struts2/interceptor/ServletRequestAware : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:343)
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:302)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

错误提示是这样的,但是我的struts2-core-2.5.2.jar包中是有这个类的

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧