用tomcat可以运行的Struts 在weblogic上却运行不了??高分,急等

ddbl7 2007-04-24 08:22:36
myeclipse5.1集成板(自带jdk)+tomcat5.5跑Struts成功
但是移植到weblogic8.1上就不行了
错误信息如下:
ERROR RequestUtils:847 - Error creating form bean of class form.StudentForm
java.lang.ClassNotFoundException: Class bytes found but defineClass()failed for: 'form.StudentForm'
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:186)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:61)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:223)
at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:41)
at org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:207)
at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:231)
at org.apache.struts.util.RequestUtils.createActionForm(RequestUtils.java:837)
at org.apache.struts.action.RequestProcessor.processActionForm(RequestProcessor.java:364)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:253)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6452)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3661)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2630)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
Caused by: java.lang.UnsupportedClassVersionError: form/StudentForm (Unsupported major.minor version 49.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:476)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:181)
... 24 more
19:59:38,328 ERROR RequestProcessor:330 - No action instance for path /getCoursefromStu could be created
java.lang.ClassNotFoundException: Class bytes found but defineClass()failed for: 'action.GetCoursefromStuAction'
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:186)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:61)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:223)
at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:41)
at org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:207)
at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:231)
at org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:326)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:268)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6452)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3661)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2630)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
Caused by: java.lang.UnsupportedClassVersionError: action/GetCoursefromStuAction (Unsupported major.minor version 49.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:476)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:181)
... 23 more
我找了form.StudentForm.class文件在目录里啊~~大家救命...
...全文
1272 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
KennyLonng 2010-01-05
  • 打赏
  • 举报
回复
是这个问题,我遇到了,也解决了。
soupld 2009-09-15
  • 打赏
  • 举报
回复
楼主这个问题解决了吗。。。。 我也遇到同样的问题了 ....
ddbl7 2007-05-09
  • 打赏
  • 举报
回复
呵呵,忘记结贴了 ....不好意思...下次注意
yougucao379548695 2007-05-03
  • 打赏
  • 举报
回复
2楼的好啊!
jicken_woo 2007-05-03
  • 打赏
  • 举报
回复
......................
ruanjiantaotao 2007-05-03
  • 打赏
  • 举报
回复
同意v38(拖拉机:Hibernate:寻找那个传说中的Bug)
v38 2007-05-02
  • 打赏
  • 举报
回复
看来真的要说几句脏话了
v38 2007-04-29
  • 打赏
  • 举报
回复
怎么都不结贴了呢?
v38 2007-04-25
  • 打赏
  • 举报
回复
搞定问题,请及时结贴
yang_ming 2007-04-25
  • 打赏
  • 举报
回复
好贴,顶!
v38 2007-04-25
  • 打赏
  • 举报
回复
网上有许多自定weblogic的JDK的文档,你搜一下就知道了
vinsonnubo 2007-04-24
  • 打赏
  • 举报
回复
加一句,myeclipse5.1集成版版自带JRE是5.0版的
vinsonnubo 2007-04-24
  • 打赏
  • 举报
回复
对啊,因为weblogic都自带有JRE默认是使用自己带的。而8.1版本的JRE版本好像比较低。这应该是导致这个错误的原因。
Sunny319 2007-04-24
  • 打赏
  • 举报
回复
我们同事前段时间也是出现这个问题,当时实在类型转换的使用1.5的特性,在weblogic 8.1.5跑报错.
推荐在写程序的时候不要使用jdk1.5的语法,大家机器环境也安装jdk1.4来编译程序.
或者用weblogic 9.呵呵
Kipen 2007-04-24
  • 打赏
  • 举报
回复
对..
同意楼上的说法..
v38 2007-04-24
  • 打赏
  • 举报
回复
搞定了及时结贴啊,哈哈,偶就等你80分,可升一级
v38 2007-04-24
  • 打赏
  • 举报
回复
注意这一句:java.lang.UnsupportedClassVersionError: action/GetCoursefromStuAction
转一篇文章给你:
出现java.lang.UnsupportedClassVersionError 错误的原因





出现java.lang.UnsupportedClassVersionError 错误的原因,是因为我们使用高版本的JDK编译的Java class文件试图在较低版本的JVM上运行,所报的错误。

因为,高版本的JDK生成的class文件使用的格式,可能与低版本的JDK的.class文件格式不同。这样,低版本的JVM无法解释执行这个.class文件,会抛出java.lang.UnsupportedClassVersionError不支持的Class版本错误。

这个错误尤其在JDK5与JDK5之前的版本上表现明显。因为,JDK5在Java语法上作了不少增强,引入了一些新的.class文件的元素,导致旧版本的JVM无法解释、执行.class文件。即使这个类并没有使用任何JDK5的新元素,但是JDK5生成的.class文件,JDK1.4及其以前的JVM都无法辨认!

所以,目前使用最广的,还是JDK1.4。很多软件和项目都无法使用JDK5。

有一个名叫 Toby Reyelts 的开发人员决定消除 JDK 5.0 编译器限制。结果就是开放源代码的 Retroweaver 项目(参见 参考资料)。Retroweaver 使用 classworking 技术来修改由 JDK 5.0 编译器生成的二进制类表示,以便这些类可以与早期的 JVM 一起使用。

它通过修改JDK5生成的.class文件,将其变为JVM1.4及之前版本能够运行的.class文件。

目前,使用新版本的IDE编辑器可能会造成你遭遇java.lang.UnsupportedClassVersionError 错误。

比如,Eclipse3.2+MyEclipse5.0这个新版的IDE工具。进入首选项---Java---编译器,可以看到,默认的编译器依从等级是5.0,这里改为1.4,因为我们使用的软件需要运行在JDK1.4的JVM上。

同一配置区下的已安装JRE中,不要安装JRE,而是安装JDK,指定1.4或1.5的JDK。还是使用jdk1.4。

在MyEclipse----应用服务器下,指定Tomcat5。指定Tomcat使用jdk1.4。

这样,就全部指定使用Jdk1.4来编译和运行程序了。如果全部指定jdk5也是可以的。但是,绝对不能够使用jdk5编译程序,而又在jdk1.4上运行程序,那样将会抛出java.lang.UnsupportedClassVersionError不支持的Class版本错误。

这种情况下,不论是Eclipse生成的war包,还是ant文件生成war包,都使用jdk5编译,就会在运行时出现错误,该应用程序将无法启动。如果你查看Tomcat的日志文件,将会看到正是java.lang.UnsupportedClassVersionError错误发生了!

81,090

社区成员

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

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