Erro ocorrendo ao informar URL sem Barra após o nome da aplicação

1 resposta
ataufo

Minha aplicação não funciona se eu não informar a barra final da aplicação.

Sem Barra:

URL: http://localhost:7070/aplicacao

Com esse endereço é exibida uma página de login, sem exibir os conteúdos estáticos e quando executado o login é redirecionado erradamente para a seguinte url: http://localhost:7070/login

Com Barra:

URL: http://localhost:7070/aplicacao/

Com esse endereço é exibida a página de login corretamente e quando executado o login é redirecionado corretamente para a url: http://localhost:7070/aplicacao/login

Seguem os arquivos de configuração:

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" 
	xmlns="http://java.sun.com/xml/ns/j2ee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns:javaee="http://java.sun.com/xml/ns/javaee" 
	xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

	<display-name>Aplicacao</display-name>
	
	<distributable />
    
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
    
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <listener>
        <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
    </listener>
    
    <listener>
    	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<servlet>
		<servlet-name>log4j-init</servlet-name>
		<servlet-class>br.com.xxx.ep.afac.util.Log4jInitServlet</servlet-class>
		<init-param>
			<param-name>log4j-properties-location</param-name>
			<param-value>WEB-INF/log4j.properties</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	
	<!-- Inicio da configuracao do DWR -->
	<servlet>
		<servlet-name>dwr</servlet-name>
		<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
		<init-param>
			<javaee:param-name>debug</javaee:param-name>
			<javaee:param-value>false</javaee:param-value>
		</init-param>
	</servlet>
	  
	<servlet-mapping>
		<servlet-name>dwr</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>
	<!-- Fim da configuracao do DRW -->
	
	<!-- Inicio da configuracao de inicialização (Configuração do SQLite) -->
	<servlet>
		<servlet-name>initDBService</servlet-name>
		<servlet-class>br.com.xxx.ep.afac.modelo.InitDBService</servlet-class>
		<load-on-startup>2</load-on-startup>
	</servlet>
	<!-- Fim da configuracao de inicialização (Configuração do SQLite) -->

	<welcome-file-list>
	  <welcome-file>/content/index.jsp</welcome-file>
	</welcome-file-list>

</web-app>

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>
	<include file="struts-default.xml" />

	<bean type="org.apache.struts2.convention.PackageBasedActionConfigBuilder" name="convention" class="br.com.xxx.ep.afac.actions.MyActionConfigBuilder" />
	
	<!-- habilita o uso de outros métodos de action internamente na classe action -->
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />

    <constant name="struts.devMode" value="false" />
	<constant name="struts.locale" value="pt_BR" />
	<constant name="struts.convention.actionConfigBuilder" value="convention" />
		
	<constant name="struts.multipart.maxSize" value="5194304" />

	<package name="default" extends="struts-default">
		<result-types>
        	<result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
        </result-types>

        <interceptors>
        	<interceptor name="autorizacao" class="br.com.xxx.ep.afac.interceptor.AutorizacaoInterceptor" />
            <interceptor-stack name="crudStack">
            	<interceptor-ref name="autorizacao" />
                <interceptor-ref name="defaultStack" />
            </interceptor-stack>
        </interceptors>
		
		<default-interceptor-ref name="crudStack"/>

		<global-results>
            <result name="login">/login.jsp</result>
            <result type="redirectAction" name="naoAutorizacao">
            	<param name="actionName">login!naoAutorizado.action</param>
            </result>
        </global-results>
	</package>
</struts>

index.jsp

<!-- index.jsp -->
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>

<tiles:insertDefinition name="login"/>

login.jsp

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href=<s:property value="#application.basePathStatic"/><c:out value='estatica/css/login.css'/> rel="stylesheet" type="text/css" />
<link href=<s:property value="#application.basePathStatic"/><c:out value='estatica/css/monitoramento.css'/> rel="stylesheet" type="text/css" />

<script src=<s:property value="#application.basePathStatic"/><c:out value='estatica/js/lib/jquery-1.4.4.min.js'/> type="text/javascript" ></script>

<title>Aplicacao</title>
</head>

<body>
	<div class="telaLogin">
		<div id="mensagem"><span><s:actionerror cssStyle="margin: 0;" /></span><span><s:actionmessage cssStyle="margin: 0;" /></span></div>

		<div class="boxLogin">
			<form name="frmLogin" action="login" method="post" id="frmLogin">
				<input type="hidden" name="metodo" value="autenticar" />
				<div class="txtLogin">Chave</div>
				<div class="cxLogin">
					<label title="Chave"> <input name="usuario.chave" type="text" class="small textfield" id="chave" size="27" maxlength="4" style="transparent;"/></label>
			 		<br><br>
				&lt;/div&gt;
				&lt;div class="txtLogin"&gt;Senha&lt;/div&gt;
			 	&lt;div class="cxLogin"&gt;
			 		&lt;label class="nopadding" title="Senha"&gt; &lt;input name="usuario.senha" type="password" class="small textfield" id="senha" size="27" maxlength="8" style="transparent;"/&gt;&lt;/label&gt;
			 	&lt;/div&gt;
				<br>
				&lt;s:submit value="Entrar" name="entrar" align="center" cssClass="bt1" style="cursor: pointer"/&gt;
			 &lt;/form&gt;
		&lt;/div&gt;
	&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;

1 Resposta

ataufo

ninguem?

reparei que em outras aplicações, ao executar URL após carregar a página é inserida a / no final da URL, porém comigo isso não está acontecendo, parece que não esta passando no lugar certo no servidor sei lá… não to entendendo nada, e pelo visto ninguem tb

Criado 10 de março de 2011
Ultima resposta 11 de mar. de 2011
Respostas 1
Participantes 1