2012-10-18 14 views
6

Tego błędu nie było, gdy po raz pierwszy uruchomiłem program, a następnie spróbowałem eksperymentu, aby uzyskać przepływ architektury MVC, ale teraz pokazuje mi ten wyjątek.Co powoduje ten NPE, gdy żądam akcji?

Domyślam się, że problem polega na tym, że gdy zażądam przez przycisk subskrypcji, przejdzie on do struts.xml, gdzie będzie szukać akcji. Problem jest w znaczniku pakietu, co powinno być tam

java.lang.NullPointerException 
    org.apache.struts2.impl.StrutsActionProxy.getErrorMessage(StrutsActionProxy.java:69) 
    com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185) 
    org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63) 
    org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39) 
    com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58) 
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:501) 
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:432) 
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) 
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) 
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) 
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
    java.lang.Thread.run(Thread.java:619) 

struts.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration        2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> 

<struts> 
    <constant name="struts.devMode" value="true" /> 
    /*This package*/ 
    <package name="Struts2Ex2" extends="struts.default"> 
     <action name="test" 
      class="MyPack.Verify" 
      method="execute"> 
      <result name="success">/Test2/WelcomeHome.jsp</result> 
     </action> 
    </package> 
</struts> 
+1

** Mam soloution w tagu to pakiet powinno być ** 'extends = "struts-default"' zamiast ** 'extends = "struts.default"' ** – Javasist

+3

Proszę odpowiedzieć na pytanie za pomocą odpowiedzi, a nie komentarza. –

Odpowiedz

4

Błędy są: 1. nie jest taki komentarz /* */ w użyciu XML <!-- --> zamiast. 2. zamiast tego nie ma takiego pakietu struts.default użyć .

+0

Przepraszam za/* */komentarze i tak, mam odpowiedź, że było ** struts-default ** only – Javasist

0

Dostałem soloution w tagu pakiet powinien być „rozciąga =«rozpórki-default»” zamiast „rozciąga =«struts.default»”