Struts para mais de um site simultaneamente

7 respostas
icemagno

Como configuro o filtro do struts2 para funcionar com dois ou mais sistemas web no mesmo tomcat?
Atualmente uso annotations para tudo e meu web.xml está assim :

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="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/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
	<display-name>TheGrid</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list> 
  
	<session-config>
		<session-timeout>3000</session-timeout>
	</session-config> 
	 
	<filter>
		<filter-name>the-grid</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
		</filter-class>
	</filter>
	
	<filter-mapping>
		<filter-name>the-grid</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
  
  
</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>
	<constant name="struts.devMode" value="true" />
	
	<package name="default" extends="struts-default">
	
	 	<interceptors>
			<interceptor name="autorizador" class="cmabreu.TheGrid.CIM.Interceptor.ClientAccessInterceptor" />
			<interceptor-stack name="seguranca"> 
				<interceptor-ref name="autorizador" />
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>
		</interceptors>
	  
		<global-results>
			<result name="naoLogado">/index.jsp</result>
		</global-results>
	</package>

</struts>

Tenho várias actions anotadas para o struts2 em 3 sistemas distintos que desenvolvo no eclipse e
gostaria de colocá-los para rodas nesta IDE ( aba SERVERS ). Aparentemente eles entram em conflito
e só um funciona, os demais não acham as actions.

Agradeço qualquer dica.

EDT : Cada um tem seu próprio web.xml e struts.xml.

7 Respostas

drsmachado

Eu trabalho com Struts 2, só com annotations e nunca tive tais problemas.
Na realidade, não entendi direito o que você pretende, ficou meio confuso isso de “um único struts para vários sistemas”.

icemagno

drsmachado:
Eu trabalho com Struts 2, só com annotations e nunca tive tais problemas.
Na realidade, não entendi direito o que você pretende, ficou meio confuso isso de “um único struts para vários sistemas”.

Já descobri que não posso ter dois web projects que usam struts abertos no mesmo server no eclipse.
Aparentemente a configuração se sobrepõe.

Acho que preciso testar cada um individualmente e depois fazer o deploy pro server pra ver os dois
rodando juntos.

Obrigado mesmo assim.

drsmachado

De onde tirou isso? Cara, eu rodo vários projetos com struts 2 simultaneamente.
O que provavelmente você esteja fazendo é cometendo erros na configuração.

icemagno

drsmachado:
De onde tirou isso? Cara, eu rodo vários projetos com struts 2 simultaneamente.
O que provavelmente você esteja fazendo é cometendo erros na configuração.

Dentro do eclipse, no mesmo server ?

drsmachado

Camarada, o eclipse não é nada mais que um editor, assim como o word permite que eu crie e edite arquivos no formato .doc (entre outros) o eclipse tem a mesma finalidade, mas, para o desenvolvimento de outros arquivos.
Sinceramente, não entendo o que tem de mais em ser “dentro do eclipse”, você insiste em usar uma forma de se expressar que, ao meu ver, é ininteligível.

Eu sou professor, tenho vários projetos em Struts 2, em JSF 2, em Struts 1 e mais uma série de outros tipos de projetos rodando simultaneamente em meu container web (apache tomcat versão 7) e/ou no JBoss (7.1).

Portanto, ou você se expressa de uma forma mais adequada, ou fica impossível tentar te ajudar. Tenho plena certeza que o problema é falha na configuração do struts 2 ou em algo que você está tentando fazer, mas não sabe como expressar de outra forma sem ser “dentro do mesmo server no eclipse”.

icemagno

drsmachado:
Camarada, o eclipse não é nada mais que um editor, assim como o word permite que eu crie e edite arquivos no formato .doc (entre outros) o eclipse tem a mesma finalidade, mas, para o desenvolvimento de outros arquivos.
Sinceramente, não entendo o que tem de mais em ser “dentro do eclipse”, você insiste em usar uma forma de se expressar que, ao meu ver, é ininteligível.

Eu sou professor, tenho vários projetos em Struts 2, em JSF 2, em Struts 1 e mais uma série de outros tipos de projetos rodando simultaneamente em meu container web (apache tomcat versão 7) e/ou no JBoss (7.1).

Portanto, ou você se expressa de uma forma mais adequada, ou fica impossível tentar te ajudar. Tenho plena certeza que o problema é falha na configuração do struts 2 ou em algo que você está tentando fazer, mas não sabe como expressar de outra forma sem ser “dentro do mesmo server no eclipse”.

Eu sei de tudo isso que vc falou.
No container tudo corre perfeitamente bem, meu problema é durante o desenvolvimento.
Vou reformular minha pergunta pq vc não entendeu:

“Dentro do eclipse” significa :

a) Windows | Show View | Servers
b) Servers | New | Server
c) Selecionar Tomcat v7.0 Server
d) Finish

Isso fará com que vc tenha uma instância do servidor só para teus projetos.
Gostaria de saber se outras pessoas também acham isto “inteligível” ou estão habituadas a trabalhar com o eclipse para JEE.

No ECLIPSE:

  1. Adicionar um novo novo webproject
  2. Chamar de projeto1.
  3. Configurar o Struts2 e criar actions, páginas, etc.
  4. Criar OUTRO projeto e dar o nome de projeto2.
  5. Struts, actions, blá blá blá.

Windows | Show View | Servers

Servers | Add | projeto1.

Servers | Tomcat v7.0 at localhost | Start
Acessa http://xxx/projeto1/actionexemplo pelo browser : TUDO OK

Servers … Stop.

Servers | projeto1 | Remove
Servers | Add | projeto2.

Servers | … | Start

Acessa http://xxx/projeto2/action2exemplo2 pelo browser : TUDO OK

Servers | Stop

Servers | Add | projeto1.

( Agora os dois estão lá )

Servers | … | Start

Pronto : Um deles dá pau no struts dizendo que não encontrou a action.

Eu sei que se fizer o deploy no tomcat ( não no eclipse, mas no proprio server )
eles vão funcionar beleza. O que eu quero é ter a praticidade de desenvolver dois
projetos e rodá-los simultaneamente dentro do ambiente para poder testar
sem precisar ficar fazendo deploy toda hora.

O Eclipse não é só um mero editor de texto. Ele tem várias funcionalidades que te ajudam
em certas ocasiões.

icemagno

Ninguém sabe?

Criado 28 de novembro de 2012
Ultima resposta 6 de dez. de 2012
Respostas 7
Participantes 2