Erro no struts: Request[/loginAction] does not contain handler parameter named 'dispatch'

1 resposta
T

Olá pessoal,

estou com um erro estranhíssimo na minha app. O cliente reporta que ao submeter um form acontece o seguinte erro:

[ERROR][2009-11-11:10:55:46]= (org.apache.struts.actions.DispatchAction.unspecified(195)) - Request[/loginAction] does not contain handler parameter named 'dispatch'.  This may be caused by whitespace in the label text.
[ERROR][2009-11-11:10:55:46]= (com.provider.controleacesso.interceptadores.ProviderExceptionHandler.execute(57)) - ProviderExceptionHandler: exception catched javax.servlet.ServletException
javax.servlet.ServletException: Request[/loginAction] does not contain handler parameter named 'dispatch'.  This may be caused by whitespace in the label text.
	at org.apache.struts.actions.DispatchAction.unspecified(DispatchAction.java:197)
	at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:245)
	at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
	at com.provider.controleacesso.log.web.action.LoggerAction.execute(LoggerAction.java:71)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
...
O mais interessante é que esse erro não acontece toda hora. Acontece dias sim e dias não, coisa de 2 a 3 vezes por dia. E esse form é submetido cerca de mil vezes por dia. Ou seja, é um negócio meio q aleatório! Eu já pesquisei muito na internet e vi que 2 caras tiveram esse mesmo erro (muita gente teve o erro, mas eles realmente tinham errado, somente esses 2 caras tinham esse erro aleatoriamente como eu). De qualquer forma, eis aqui como está meu struts-config:
<!-- Login -->
		<action path="/loginAction"
			type="org.springframework.web.struts.DelegatingActionProxy"
			name="loginForm" scope="request" parameter="dispatch">

			<forward name="login" path="/login.jsp" redirect="false" />

			<forward name="parent" path="/WEB-INF/jsp/_parent.jsp"
				redirect="false" />

			<forward name="top" path="/WEB-INF/jsp/_top.jsp"
				redirect="false" />

			<forward name="sucessoAlterarSenha"
				path="/WEB-INF/jsp/mensagemsenhaalterada.jsp" redirect="false" />
				
			<forward name="decideLogin"
				path="/discadorLoginAction.do?dispatch=decideLogin" redirect="false" />
				
			<forward name="trocaSenha"
				path="/WEB-INF/jsp/controleacesso/trocasenha.jsp" redirect="false" />
		</action>

Bom, quem souber o problema ou mesmo uma contramedida para ele, agradeço, porque estou precisando de umas idéias pra isso...

Desde já agradeço!

1 Resposta

T

Acabo de ler num post que o IE pode submeter o form caso vc aperte ‘Enter’. Daí o submit não é chamado com o dispatch q vc queria e o container web assume que não foi encontrado o método desejado (mesmo assim o Tomcat mostra uma msg errada, afirmando q o parâmetro ‘dispatch’ não existe). Alguns caras falaram q vc pode sobrescrever o método unspecified(…) e dentro dele chamar o método correto. Mas como fazer isso? Tipo, se isso acontecer com outro dispatch nessa mesma página? Eu devo chutar para onde deveria ir? Não entendo como sobrescrever o unspecified(…) corrigiria o problema. Alguém pode ajudar?

Criado 13 de novembro de 2009
Ultima resposta 13 de nov. de 2009
Respostas 1
Participantes 1