Контент, разобранный через Glassfish 3, хотя дескрипторы развертывания выглядят корректно - PullRequest
1 голос
/ 14 октября 2010

Я бросил войну в автоматическое развертывание домена GlassFish 3, и он взорвался нормально, показывая дерево подкаталогов domain1> apps> myApp, в котором находится WEB-INF> classes> дерево папок myApp, в котором хранятся классы для myApp .

Приложение изначально использовало JSF1.2 и Facelets (1.1.15) и было развернуто на tomcat 6, но сейчас я пытаюсь выполнить сборку с использованием Java EE 6 и GlassFish v3.

Я знаю, что в Java EE 6 есть встроенный JSF 2 и Facelets, поэтому я удалил все ненужные jar-файлы из библиотеки приложений, оставив RichFaces, а также jar-файлы Log4J и некоторые Apache-файлы общего доступа, необходимые для поддержки приложения.

Приложение развертывается, но у меня есть эта проблема:

Файл JSF index.xhtml загружается после развертывания приложения. Содержимое страницы не разбирается, поскольку теги richfaces и jsf игнорируются, хотя весь файл отправляется в браузер. Вся страница инкапсулирована в тэг ui :position facelets. Я прочитал в другом месте , что это потому, что страница не проходит через FacesServlet. Кто-нибудь может подсказать, что мне нужно сделать с моими дескрипторами развертывания, чтобы они работали, если они действительно являются проблемой?

My faces-config.xml имеет только настройки управляемого бина; мой web.xml содержит:

<!-- Faces Servlet -->
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<!-- Faces Servlet Mapping -->
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>

<!-- Added for facelets -->
<context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
</context-param>

среди множества других тегов. Мой sun-web.xml содержит:

<sun-web-app error-url="">
  <context-root>/MyApp</context-root>
  <class-loader delegate="false"/>
  <jsp-config>
    <property name="keepgenerated" value="true">
      <description>Keep a copy of the generated servlet class java code.</description>
    </property>
  </jsp-config>
</sun-web-app>

EDIT

Я указал браузеру на http://localhost:9090/myApp/index.jsf, и проблема не изменилась, хотя в журнале сервера я получаю это

[#|2010-10-15T12:27:17.603+0100|INFO|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=29;_ThreadName=Thread-1;||STDOUT| 2010-10-15 12:27:17,603 | INFO  | [http-thread-pool-9090-(12)]: Selected [org.ajax4jsf.cache.LRUMapCacheFactory] cache factory
|#]

[#|2010-10-15T12:27:17.603+0100|INFO|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=29;_ThreadName=Thread-1;||STDOUT| 2010-10-15 12:27:17,603 | INFO  | [http-thread-pool-9090-(12)]: Creating LRUMap cache instance using parameters: {javax.faces.DEFAULT_SUFFIX=.xhtml, com.sun.faces.validateXml=true, com.sun.faces.forceLoadConfiguration=true, facelets.RECREATE_VALUE_EXPRESSION_ON_BUILD_BEFORE_RESTORE=true, org.richfaces.LoadStyleStrategy=ALL, javax.faces.STATE_SAVING_METHOD=server, org.richfaces.CONTROL_SKINNING=enable, org.richfaces.SKIN=glassX, org.richfaces.CONTROL_SKINNING_CLASSES=enable}
|#]

[#|2010-10-15T12:27:17.603+0100|INFO|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=29;_ThreadName=Thread-1;||STDOUT| 2010-10-15 12:27:17,603 | INFO  | [http-thread-pool-9090-(12)]: Creating LRUMap cache instance of default capacity
|#]

[#|2010-10-15T12:27:17.635+0100|INFO|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=29;_ThreadName=Thread-1;||STDOUT| 2010-10-15 12:27:17,635 | INFO  | [http-thread-pool-9090-(12)]: Selected [org.ajax4jsf.cache.LRUMapCacheFactory] cache factory
|#]

[#|2010-10-15T12:27:17.635+0100|INFO|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=29;_ThreadName=Thread-1;||STDOUT| 2010-10-15 12:27:17,635 | INFO  | [http-thread-pool-9090-(12)]: Creating LRUMap cache instance using parameters: {javax.faces.DEFAULT_SUFFIX=.xhtml, com.sun.faces.validateXml=true, com.sun.faces.forceLoadConfiguration=true, facelets.RECREATE_VALUE_EXPRESSION_ON_BUILD_BEFORE_RESTORE=true, org.richfaces.LoadStyleStrategy=ALL, javax.faces.STATE_SAVING_METHOD=server, org.richfaces.CONTROL_SKINNING=enable, org.richfaces.SKIN=glassX, org.richfaces.CONTROL_SKINNING_CLASSES=enable}
|#]

[#|2010-10-15T12:27:17.635+0100|INFO|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=29;_ThreadName=Thread-1;||STDOUT| 2010-10-15 12:27:17,635 | INFO  | [http-thread-pool-9090-(12)]: Creating LRUMap cache instance of default capacity

, похоже, ему нравится содержимое faces-config.xml, но оно по-прежнему не отображается. Чтобы подтвердить, я указал <url-pattern>*.jsf</url-pattern> в своем дескрипторе развертывания web.xml, мой javax.faces.DEFAULT_SUFFIX имеет значение параметра .xhtml, и моя страница приветствия и все другие страницы веб-материалов заканчиваются .xhtml.

Имеет ли какое-либо значение сервер, возвращающий одну и ту же информацию дважды?

Спасибо за вашу помощь.

РЕДАКТИРОВАТЬ 2 Банки richfaces-[api|impl-jsf2|ui]-3.3.3.Final находятся в библиотеке вместе с jsf-facelets.jar, что составляет 1.1.15, как рекомендовано здесь . Мой дескриптор веб-приложения version="2.5". Из-за того, что мне нужно было включить 1.1.15 Facelets, и я использую GlassFish 3 т.е. Java EE 6, я попытался установить для <class-loader delegate="true"/> значение false, чтобы попытаться получить флягу Facelets 1.1.15 и использовать ее в качестве предпочтения загрузчиком классов, но это не имело никакого значения.

faces-config.xml установлен на version="2.0":

<faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">
...