This week's book giveaway is in the OCPJP forum.
We're giving away four copies of OCA/OCP Java SE 7 Programmer I & II Study Guide and have Kathy Sierra & Bert Bates on-line!
See this thread for details.
The moose likes Struts and the fly likes java.lang.NullPointerException   org.apache.struts2.dispatcher.ServletRedirectResult.isPathUrl(Servl Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCA/OCP Java SE 7 Programmer I & II Study Guide this week in the OCPJP forum!
JavaRanch » Java Forums » Frameworks » Struts
Bookmark "java.lang.NullPointerException   org.apache.struts2.dispatcher.ServletRedirectResult.isPathUrl(Servl" Watch "java.lang.NullPointerException   org.apache.struts2.dispatcher.ServletRedirectResult.isPathUrl(Servl" New topic
Author

java.lang.NullPointerException org.apache.struts2.dispatcher.ServletRedirectResult.isPathUrl(Servl

sol loc
Greenhorn

Joined: Jul 29, 2010
Posts: 11
Hello guys,

i have this action :


package it.consip.cafe.sicurezza.webapp.action;

/**
* Created by IntelliJ IDEA.
* User: hp
* Date: 21-lug-2010
* Time: 16.44.50
* To change this template use File | Settings | File Templates.
*/

import it.consip.cafe.common.webapp.action.AbstractAction;
import it.consip.cafe.security.business.manager.RuoloManager;
import it.consip.cafe.security.business.manager.UtenteManager;
import it.consip.cafe.security.business.model.Ruolo;
import it.consip.cafe.security.business.model.Utente;
import org.apache.commons.lang.xwork.StringUtils;
import org.apache.struts2.convention.annotation.*;
import org.apache.struts2.interceptor.validation.SkipValidation;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

@Results({
@Result(location = "/WEB-INF/jsp/sicurezza/ricercaUtente.jsp"),


@Result(name = "associaRuoli", location = "/WEB-INF/jsp/sicurezza/associaRuolo.jsp")
})

@Namespace("/sicurezza")
public class UtenteAction extends AbstractAction {


@Autowired
UtenteManager utenteManager;

@Autowired
RuoloManager ruoloManager;

private final String ASSOCIARUOLI = "associaRuoli";
private final String INSERISCI = "inserisci";
private String matricola;
private String cognome;

private List<Utente> utentiRicerca;
private List<Ruolo> listaRuoli;
private String setup;
private Long idUtenteSelezionato;
private Utente utenteSelezionato;
private Long[] ruoliSelezionati;

@Action(value = "cerca",
results = {@Result(name = "input", location = "/WEB-INF/jsp/sicurezza/ricercaUtente.jsp"),
@Result(location = "/WEB-INF/jsp/sicurezza/ricercaUtente.jsp")})
public String cerca() {
setUtentiRicerca(utenteManager.ricercaUtente(getMatricola(), getCognome()));

return SUCCESS;
}

@Action(value = "associaRuoli",
results = {@Result(name = "input", type = "redirect", params = {"method", "cerca"} ),
@Result(location = "/WEB-INF/jsp/sicurezza/ricercaUtente.jsp")})
public String associaRuoli() {
setUtenteSelezionato(utenteManager.findById(idUtenteSelezionato));
getSetup();
setListaRuoli(ruoloManager.findAll());

return ASSOCIARUOLI;
}

@Action(value = "inserisci",
results = {@Result(name = "input", type = "chain", params = {"method", "associaruoli"}),
@Result(location = "/WEB-INF/jsp/sicurezza/associaRuolo.jsp")})
public String inserisci() {




return SUCCESS ;
}


public void validateCerca() {
if (StringUtils.isBlank(getCognome()) && StringUtils.isBlank(getMatricola())) {
addActionError(getText("ricerca.campiObbligatori"));
}
}

public void validateAssociaRuoli() {
if (getIdUtenteSelezionato() == null) {
addActionError(getText("ricerca.radioObbligatorio"));

}

}

public void validateInserisci() {

if (getRuoliSelezionati() == null) {
addActionError(getText("ricerca.checkboxObbligatori"));

}

}


public String getCognome() {
return cognome;
}

public void setCognome(String cognome) {
this.cognome = cognome;
}


public String getMatricola() {
return matricola;
}

public void setMatricola(String matricola) {
this.matricola = matricola;
}


public List<Utente> getUtentiRicerca() {
return utentiRicerca;
}

public void setUtentiRicerca(List<Utente> utentiRicerca) {
this.utentiRicerca = utentiRicerca;
}

public Long getIdUtenteSelezionato() {
return idUtenteSelezionato;
}

public void setIdUtenteSelezionato(Long idUtenteSelezionato) {
this.idUtenteSelezionato = idUtenteSelezionato;
}

public Utente getUtenteSelezionato() {
return utenteSelezionato;
}

public void setUtenteSelezionato(Utente utenteSelezionato) {
this.utenteSelezionato = utenteSelezionato;
}

public List<Ruolo> getListaRuoli() {
return listaRuoli;
}

public void setListaRuoli(List<Ruolo> listaRuoli) {
this.listaRuoli = listaRuoli;
}

public Long[] getRuoliSelezionati() {
return ruoliSelezionati;
}

public void setRuoliSelezionati(Long[] ruoliSelezionati) {
this.ruoliSelezionati = ruoliSelezionati;
}

public String getSetup() {
return setup;
}

public void setSetup(String setup) {
this.setup = setup;
}
}




and this jsp



<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>

<html>
<head>
<title>Ricerca Utente</title>
</head>
<body>

<meta name="immagine" content="<%= request.getContextPath() %>/img/logoSub4.jpg"/>
<s:form action="utente">
<div class="boxTable">


<s:actionerror/>
<fieldset class="form1">

<legend><strong>Cerca utente</strong></legend>

<s:label class="1200" for="matricola" key="ricerca.matricola"/>
<s:textfield name="matricola"/>
<br/>

<s:label class="1200" for="cognome" key="ricerca.cognome"/>
<s:textfield name="cognome"/>
<br/>

</fieldset>


<div class="tableButton3">
<s:submit action="cerca" key="default.pulsanteCerca"/>
</div>

</div>


<br/>
<s:if test="utentiRicerca.size > 0">
<display:table name="utentiRicerca" id="utente" class="dati testo11" summary="testo" style="width: 100%;">
<display:caption title="Tabella degli utenti"/>
<display:column property="matricola" title="Matricola" scope="col" style="text-align: center;"/>
<display:column property="cognome" title="Cognome"/>
<display:column property="nome" title="Nome"/>
<display:column property="stampaRuoli" title="Ruoli"/>
<display:column class="w1" style="text-align: center;" title="Seleziona">
<input type="radio" name="idUtenteSelezionato" value='<s:property value="#attr.utente.id"/>'/>
</display:column>
</display:table>

<div class="tableButton3">
<s:submit action="associaRuoli" key="default.pulsanteAssociaRuoli"/>

</div>

</s:if>
</s:form>
</body>
</html>



In tha action i used a ridirect when i submit the jsp with the button <s:submit action="associaRuoli" key="default.pulsanteAssociaRuoli"/> and if there are error it must riderect on the same page that call la same action with the object to see in the jsp

@Action(value = "associaRuoli",
results = {@Result(name = "input", type = "redirect", params = {"method", "cerca"} ),
@Result(location = "/WEB-INF/jsp/sicurezza/ricercaUtente.jsp")})
why don't work??

i See this error :

Stacktraces
java.lang.NullPointerException

org.apache.struts2.dispatcher.ServletRedirectResult.isPathUrl(ServletRedirectResult.java:231)
org.apache.struts2.dispatcher.ServletRedirectResult.doExecute(ServletRedirectResult.java:148)
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:102)
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
org.mortbay.jetty.Server.handle(Server.java:313)
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)



thankyou

David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

Please UseCodeTags when posting code or configuration. Unformatted code and configuration is unnecessarily difficult to read. You can edit your post by using the button.
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

The location of a redirect must be an actual application resource, not the name of a result.

http://struts.apache.org/2.x/docs/redirect-result.html
http://struts.apache.org/2.x/docs/result-types.html
sol loc
Greenhorn

Joined: Jul 29, 2010
Posts: 11
Do you give me an axample, please??

thankyou
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

There are examples on the linked page, and the Convention plugin page has examples as well.
sol loc
Greenhorn

Joined: Jul 29, 2010
Posts: 11
ok thanks, but i start to programmer a few time and i don't understant if someone can give me an example.

thank you
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

What do you want an example of? A redirect needs something other than a result name. You don't use result names as arguments to results: results *have* names, and are things like actions, JSPs, etc.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: java.lang.NullPointerException org.apache.struts2.dispatcher.ServletRedirectResult.isPathUrl(Servl