Ошибка dojo struts2: статический ресурс больше не доступен - PullRequest
2 голосов
/ 29 января 2012

Я пытаюсь Ajax с Struts2 и Dojo делает что-то очень простое:

в jsp:

...
<sx:head/>
...
<sx:div href="/myUrl.action">Loading ...</sx:div>
...

Я отлично работаю, получаю URL и так далее. НО, когда я перезагружаю контекст, изменяя jsp (у меня есть контекст с флагом reloadable = "true"), он больше не работает.

Причина в том, что следующий URL больше не доступен: http://myserver.com/myContext/struts/dojo/struts_dojo.js

приводит к следующему исключению:

java.lang.NullPointerException
    org.apache.struts2.dispatcher.DefaultStaticContentLoader.findStaticResource(DefaultStaticContentLoader.java:162)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeStaticResourceRequest(ExecuteOperations.java:62)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:86)
    com.cellectis.servlet.common.SessionRecorder.doFilter(SessionRecorder.java:68)

(он был доступен, когда работал).

Я пробовал в struts2-jquery, и у меня была точно такая же проблема доступности javascript.

Мой экстракт web.xml:

...
<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>/st2fr/*</url-pattern>
  <url-pattern>/struts/*</url-pattern>
</filter-mapping>
...

У меня нет простого URL-шаблона / *, потому что в этом же контексте есть несколько неструктурных сервлетов. / st2fr - это пространство имен, в котором находится мое приложение Struts, а / struts / * должно иметь доступ к JavaScript додзё.

Я использую Struts-2.3.1 на Tomcat-6.0.13

Кто-нибудь знает, почему это странное поведение или что делать?

Спасибо за внимание.

Aymeric

...