浏览 4943 次
锁定老帖子 主题:Struts怪异问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-04-11
然而把它部署到weblogic(版本为8.1),运行后却抛出: 2006/04/11 18:17:42 org.apache.struts.util.RequestUtils createActionForm SEVERE: Error creating form bean of class com.esprit.struts.form.LoginForm java.lang.NullPointerException at org.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java:212); at org.apache.struts.util.RequestUtils.createActionForm(RequestUtils.java:292); at org.apache.struts.util.RequestUtils.createActionForm(RequestUtils.java:191); at org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:477); at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:457); at jsp_servlet._pages.__login._jspService(__login.java:278); at weblogic.servlet.jsp.JspBase.service(JspBase.java:33); at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072); at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465); at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348); at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:322); at weblogic.servlet.jsp.PageContextImpl.forward(PageContextImpl.java:150); at org.apache.struts.taglib.logic.ForwardTag.doForward(ForwardTag.java:121); at org.apache.struts.taglib.logic.ForwardTag.doEndTag(ForwardTag.java:105); at jsp_servlet.__index._jspService(__index.java:148); at weblogic.servlet.jsp.JspBase.service(JspBase.java:33); at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072); at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465); at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348); at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6981); at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321); at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121); at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892); at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766); at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224); at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183); 跟踪调试发现Tomcat下,FormBeanConfig里的formBeanClass()得到了实例,而weblogic下,FormBeanConfig里的formBeanClass()返回NULL 把FormBeanConfig中的createActionForm()函数和formBeanClass()函数也贴出来: public ActionForm createActionForm(ActionServlet servlet); throws IllegalAccessException, InstantiationException { Object obj = null; // Create a new form bean instance if (getDynamic();); { obj = getDynaActionFormClass();.newInstance();; } else { obj = formBeanClass();.newInstance();; } ActionForm form = null; if (obj instanceof ActionForm); { form = (ActionForm);obj; } else { form = new BeanValidatorForm(obj);; } form.setServlet(servlet);; if (form instanceof DynaBean && ((DynaBean);form);.getDynaClass(); instanceof MutableDynaClass); { DynaBean dynaBean = (DynaBean);form; MutableDynaClass dynaClass = (MutableDynaClass);dynaBean.getDynaClass();; // Add properties dynaClass.setRestricted(false);; FormPropertyConfig props[] = findFormPropertyConfigs();; for (int i = 0; i < props.length; i++); { dynaClass.add(props[i].getName();, props[i].getTypeClass(););; dynaBean.set(props[i].getName();, props[i].initial(););; } dynaClass.setRestricted(isRestricted(););; } return form; } protected Class formBeanClass(); { ClassLoader classLoader = Thread.currentThread();.getContextClassLoader();; if (classLoader == null); { classLoader = this.getClass();.getClassLoader();; } try { return (classLoader.loadClass(getType();););; //问题出在这,Tomcat下这个返回正常,而weblogic下却进了catch,getType();得到的就是com.esprit.struts.form.LoginForm,貌似loadClass();这个函数没找到这个class,但是在WEB-INF/classes下有存在这个class的。 } catch (Exception e); { return (null);; } } 请各位大大帮忙分析下,小弟刚用weblogic,这是什么原因所致? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-04-25
esprit 写道 有这么一个Struts工程,myeclipse开发,部署到Tomcat,一切正常
然而把它部署到weblogic(版本为8.1),运行后却抛出: 2006/04/11 18:17:42 org.apache.struts.util.RequestUtils createActionForm SEVERE: Error creating form bean of class com.esprit.struts.form.LoginForm java.lang.NullPointerException at org.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java:212); at org.apache.struts.util.RequestUtils.createActionForm(RequestUtils.java:292); at org.apache.struts.util.RequestUtils.createActionForm(RequestUtils.java:191); at org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:477); at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:457); at jsp_servlet._pages.__login._jspService(__login.java:278); at weblogic.servlet.jsp.JspBase.service(JspBase.java:33); at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072); at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465); at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348); at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:322); at weblogic.servlet.jsp.PageContextImpl.forward(PageContextImpl.java:150); at org.apache.struts.taglib.logic.ForwardTag.doForward(ForwardTag.java:121); at org.apache.struts.taglib.logic.ForwardTag.doEndTag(ForwardTag.java:105); at jsp_servlet.__index._jspService(__index.java:148); at weblogic.servlet.jsp.JspBase.service(JspBase.java:33); at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072); at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465); at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348); at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6981); at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321); at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121); at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892); at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766); at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224); at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183); 跟踪调试发现Tomcat下,FormBeanConfig里的formBeanClass()得到了实例,而weblogic下,FormBeanConfig里的formBeanClass()返回NULL 把FormBeanConfig中的createActionForm()函数和formBeanClass()函数也贴出来: public ActionForm createActionForm(ActionServlet servlet); throws IllegalAccessException, InstantiationException { Object obj = null; // Create a new form bean instance if (getDynamic();); { obj = getDynaActionFormClass();.newInstance();; } else { obj = formBeanClass();.newInstance();; } ActionForm form = null; if (obj instanceof ActionForm); { form = (ActionForm);obj; } else { form = new BeanValidatorForm(obj);; } form.setServlet(servlet);; if (form instanceof DynaBean && ((DynaBean);form);.getDynaClass(); instanceof MutableDynaClass); { DynaBean dynaBean = (DynaBean);form; MutableDynaClass dynaClass = (MutableDynaClass);dynaBean.getDynaClass();; // Add properties dynaClass.setRestricted(false);; FormPropertyConfig props[] = findFormPropertyConfigs();; for (int i = 0; i < props.length; i++); { dynaClass.add(props[i].getName();, props[i].getTypeClass(););; dynaBean.set(props[i].getName();, props[i].initial(););; } dynaClass.setRestricted(isRestricted(););; } return form; } protected Class formBeanClass(); { ClassLoader classLoader = Thread.currentThread();.getContextClassLoader();; if (classLoader == null); { classLoader = this.getClass();.getClassLoader();; } try { return (classLoader.loadClass(getType();););; //问题出在这,Tomcat下这个返回正常,而weblogic下却进了catch,getType();得到的就是com.esprit.struts.form.LoginForm,貌似loadClass();这个函数没找到这个class,但是在WEB-INF/classes下有存在这个class的。 } catch (Exception e); { return (null);; } } 请各位大大帮忙分析下,小弟刚用weblogic,这是什么原因所致? 看看weblogic下是否有其他struts.jar特别是server目录中 |
|
返回顶楼 | |