1

これをindex.jspJSFファイルに含めました。

<%@ taglib prefix="ui" uri="http://java.sun.com/jsf/facelets"%>

EclipseはURLに下線を引き、ホバーすると次のようになります。

Cannot find the tag library descriptor for "http://java.sun.com/jsf/facelets"

Tomcatプラグインを使用してTomcat6をデプロイして起動しようとすると、次のようになります。

|STDOUT| 2010-03-03 17:57:29,872 | INFO  | [main]: Serialization provider : class org.apache.myfaces.shared_impl.util.serial.DefaultSerialFactory
    |STDOUT| 2010-03-03 17:57:29,904 | INFO  | [main]: ServletContext 'C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\myapp\' initialized.
    |STDOUT| 2010-03-03 17:57:29,904 | INFO  | [main]: Checking for plugins:org.apache.myfaces.FACES_INIT_PLUGINS
    03-Mar-2010 17:57:29 org.apache.catalina.core.StandardContext start
    SEVERE: Error listenerStart
    03-Mar-2010 17:57:29 org.apache.catalina.core.StandardContext start
    SEVERE: Context [/myapp] startup failed due to previous errors

..。

03-Mar-2010 17:57:30 com.sun.faces.config.ConfigureListener contextDestroyed
SEVERE: Unexpected exception when attempting to tear down the Mojarra runtime
java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.application.ApplicationFactory
    at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:804)

私のweb.xmlにはこれが含まれています

<listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>

私のface-config.xmlにはこれが含まれています

    <application>
    <!-- tell JSF to use Facelets -->
    <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
</application>

そして、私のアプリケーションビルドには最新のJSF2.0.2jsf-api.jarとjsf-impl.jarがあります。MyFaces1.2.8とすべての最新のcommonsjarもあります。JSFをアップグレードするまで、アプリは正常に構築されていました。少なくとも実行時エラーが予想されますが、ここではEclipseはtaglibを認識できません。他に何が欠けている可能性がありますか?

編集

詳細については、Mojarraを取り出して、Myfacesに残しました。これは私がこれを私のweb.xml:から削除する必要があることを意味しました

<listener>
        <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    </listener> 

そしてそれをmyfacesと同等のものに置き換えます:

<listener>
  <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>

ありがとう

4

2 に答える 2

6

JSF 2.0 と JSF 2.0 より前のバージョンを混在させないでください。予期しない結果 (上記のような) につながる可能性があります。

JSF 2.0 実装 (一見モジャラ) を選択し、すべての myfaces および facelets ライブラリを削除します。

于 2010-03-03T19:45:48.130 に答える
1

うーん、それは迷惑です。Mojarra の新しいリリースで facelets が埋め込まれていることをいくつかの場所で読みました。ビルドに jsf-facelets-1.1.14.jar を追加したところ、正常にデプロイされました。

于 2010-03-03T18:52:29.397 に答える