报错如下:严重: Servlet.service() for servlet action threw exception
java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext
at org.springframework.web.struts.DelegatingActionUtils.getWebApplicationContext(DelegatingActionUtils.java:93)
at org.springframework.web.struts.DelegatingActionUtils.findRequiredWebApplicationContext(DelegatingActionUtils.java:145)
at org.springframework.web.struts.DelegatingActionProxy.getWebApplicationContext(DelegatingActionProxy.java:146)
at org.springframework.web.struts.DelegatingActionProxy.getDelegateAction(DelegatingActionProxy.java:125)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:109)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:866)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:716)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1498)
at java.lang.Thread.run(Thread.java:595)
我添加了spring-web包还是报错呀
配置文件如下:
<bean name="/login" class="action.LoginAction" scope="prototype">
<property name="usermanager" ref="usermanager"></property>
</bean>
<bean id="usermanager" class="user.UserManagerImpl"></bean>
struts配置文件如下:
struts-config>
  <data-sources />
  <form-beans>
  <form-bean name="LoginForm" type="form.LoginActionForm"></form-bean>
  </form-beans>
  <global-exceptions />
  <global-forwards />
  <action-mappings>
  <action path="/login1" forward="/login.jsp">  </action>
  <action path="/login" type="org.springframework.web.struts.DelegatingActionProxy" name="LoginForm" scope="request">
  <forward name="success" path="/login_success.jsp"></forward>
  </action>
  </action-mappings>
  <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>
action代码如下:
public class LoginAction extends Action {
   private UserManger usermanager;
public void setUsermanager(UserManger usermanager) {
this.usermanager = usermanager;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// TODO Auto-generated method stub
LoginActionForm lf=(LoginActionForm)form;
String name=lf.getName();
String password=lf.getPwd();
//UserManger um=new UserManagerImpl();
//um.login(name, password);

return mapping.findForward("success");
}}搞了一下午没有搞出来,请大家帮帮忙!

解决方案 »

  1.   

    java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext从错误信息看是没有找到类,看看spring的包是否导入到工程中,版本对不对,与spring相关的包是否也导入了。
      

  2.   

    还是缺包吧,我之前搭SSH也很费尽,都是GOOGLE解决的.
      

  3.   

    usermanager有没有配置
    <bean id="usermanager" class="....">
    <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
      

  4.   

    struts1.x和spring集成请在
    <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
    下方加上:
    <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn" >
      <set-property property="contextConfigLocation" value="classpath:search.xml"/>
    </plug-in>
    因为struts1.x是以组建形式集成到Spring中......
    search.xml你可以替换为你的Spring配置文件...applicationContext.xml
      

  5.   

    给你种思路吧:
    在struts-config.xml 文件中配置如下信息.放置的位置应该在</struts-config>的前面.
      <plug-in
    className="org.springframework.web.struts.ContextLoaderPlugIn">
          <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
      </plug-in>
    然后改动你写的action的type属性为:
    type="org.springframework.web.struts.DelegatingActionProxy"
    如:
    <action 
    path="/update" type="org.springframework.web.struts.DelegatingActionProxy" />
    struts 的action就交给spring容器进行管理了.
    接着,在我们的action类中注入我们要使用的数据操作对象.如,数据库操作类;
      

  6.   

    没有写spring相对应的配置信息吧,或者你根本就没有引spring的包。检查下你的框架是否引用完全,lz
      

  7.   

    我把web.xml加上配置文件就好了<context-param>       
         <param-name>contextConfigLocation</param-name>    
          <param-value>classpath*:applicationContext.xml</param-value>    
       </context-param>
    <servlet> 
    <servlet-name>SpringContextServlet</servlet-name> 
    <servlet-class> 
    org.springframework.web.context.ContextLoaderServlet 
    </servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet>