Tenho um projeto com struts 2 rodando blz.
Estou começando a integrar com o flex e com isso tenho que deixar rodando o sistema em struts 2 tb.
A configuração esta quase 100%. estou apenas com um problema no web.xml.
<!-- Conf. do Struts -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>br.org.saomarcos.intranet.actions</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern> <!-- AQUI ESTA O CONFLITO -->
</filter-mapping>
<!-- Conf. do flex -->
<!-- MessageBroker Servlet -->
<servlet>
<servlet-name>MessageBrokerServlet</servlet-name>
<servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
<init-param>
<param-name>services.configuration.file</param-name>
<param-value>/WEB-INF/flex/services-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MessageBrokerServlet</servlet-name>
<url-pattern>/messagebroker/*</url-pattern> <!-- AQUI ESTA O CONFLITO -->
</servlet-mapping>
se deixar o url-pattern do modo como esta, apenas o struts funciona, pois esta com o /. Existe alguma possibilidade de colocar NOT /messagebroker/ no filter do struts ?
ou algo semelhante?
abraços
Que estranho, geralmente o filtro do Struts trata o que é dele e deixa as demais requisições passarem normal…
Você está tendo algum erro, ou só tinha pensado nisso por precaução ?
o struts esta tentando fazer o mapeamento de todos justamente por causa do /*! tentei trocar o *.action mais algumas coisas, como jquery, parou de funcionar!
Cara, mapeia esse casos em que vc quer fazer bypass para o servlet default.
Abrex.
diogopontual, como fazer isso ? manda uma dica ai!
Ai jisuis… Tem tempo que eu não faço isso, e não tenho nenhum código de exemplo aqui… Mas…
O Tomcat vem com um servlet mapeado como “default” . Então vc só precisa adicionar tags assim:
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/urlEspecíficaQueVcNaoQuerQuePassePeloOutroServlet</url-pattern>
</servlet-mapping>
Acho que isso resolve o problema…
desse modo tb não consegui.
Entretanto, por enquanto, resolvi de outro modo.
Consegui duplicando a filter-mapping do struts, onde a primeira atende as .action e a outra foi obrigatório pela necessidade do struts (descobri pelo firebug)!
Por enquanto esta tudo bacana! se der pau aviso!
<!-- Conf. do Struts -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>br.org.saomarcos.intranet.actions</param-value>
</init-param>
</filter>
<!-- Dupliquei o filter, onde o primeiro é para as actions e o outro pq o struts necessita-->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/struts/*</url-pattern>
</filter-mapping>
<!-- Conf. do flex -->
<!-- MessageBroker Servlet -->
<servlet>
<servlet-name>MessageBrokerServlet</servlet-name>
<servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
<init-param>
<param-name>services.configuration.file</param-name>
<param-value>/WEB-INF/flex/services-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MessageBrokerServlet</servlet-name>
<url-pattern>/messagebroker/*</url-pattern> <!-- AQUI ESTA O CONFLITO -->
</servlet-mapping>