私は基本的に同じjavascript/CSSとレイアウトテンプレートを使用するいくつかの異なるプロジェクトを持っています。私はこれをすべて私のタペストリー共通プロジェクトに移してそこから参照したいと思います。タペストリーレイアウトとコンポーネントライブラリ
私のタペストリー共通ライブラリには他の共通コンポーネントがありますが、レイアウトが正しく動作するように見えません。私は com/company/tapestrylib/components
下com.company.tapestrylib.components
でCommonLayout.javaとCommonLayout.tmlファイルを持っている私のタペストリー共通-libのプロジェクトで
。
私はそうのように私のIndex.tml内の別のプロジェクトを形成CommonLayoutを参照しようとしています:私はそのページにアクセスするたび
<t:commonlayout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
</t:commonlayout>
しかし、私は
Unable to resolve 'commonlayout' to a component class name.
を得るが、私はこれを行うことができます?私も自分のタペストリー共通-libのjarファイルに私の一般的なCSSやJavaScriptのすべてを入れて、例えば使用して、そこからそれらを参照することができます:私は周りを探してきたし、カスタムを作成する上での記事の多くを発見した
<script type="text/javascript" src="${asset:context:/js/jquery-1.4.2.js}"></script>
コンポーネント、およびコンポーネントライブラリが含まれていますが、私がやろうとしているようなレイアウトは再利用されていません。
更新日:
私は現在、コンポーネントライブラリから他の抽象コンポーネントを使用しています。これらは[root] .tapestrylib.baseに格納されます。
[root] .tapestrylib.componentsに共通のレイアウト(Layout.javaとLayout.tml)を保存しようとしています。私の他のプロジェクトからこのレイアウトを参照しようとすると、私はそうのようにそれを使用しようとしています
Unable to resolve 'layout' to a component class name.
を得る:
<html t:type="tapestry-lib/layout" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd" xmlns:p="tapestry:parameter">
</html>
これは私が取得しています実際の例外の一部です:
11:28:01 ERROR RequestExceptionHandler - Processing of request failed with uncaught exception: Unable to resolve 'tapestry-lib/layout' to a component class name.
org.apache.tapestry5.ioc.internal.OperationException: Unable to resolve 'tapestry-lib/layout' to a component class name. [at classpath:com/mycompany/webapp/pages/Index.tml, line 1]
at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:102)
at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:69)
at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1057)
at org.apache.tapestry5.internal.pageload.PageLoaderImpl.createAssembler(PageLoaderImpl.java:218)
at org.apache.tapestry5.internal.pageload.PageLoaderImpl.getAssembler(PageLoaderImpl.java:208)
at org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageLoaderImpl.java:180)
at org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageLoaderImpl.java:174)
at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65)
at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1057)
at org.apache.tapestry5.internal.pageload.PageLoaderImpl.loadPage(PageLoaderImpl.java:173)
at $PageLoader_12d045be613.loadPage($PageLoader_12d045be613.java)
Webアプリケーションの起動時に使用可能なコンポーネントも確認してください。ログには、使用可能なすべてのもの、つまりコアと、適切に設定したコンポーネントライブラリのリストが含まれている必要があります。 – bbcooper
私はこれをすべてチェックし、コンポーネントライブラリからいくつかの一般的な抽象基本コンポーネントを使用しているので、正しく構成されています。おそらく私は間違った場所に共通のレイアウトを配置していますか?私は私のtapestrylib.componentsパッケージにそれを持っています。 – Casey
@Casey:作業基本クラスは、JARがクラスパス上にあり、コンポーネントlibが構成されていないことを意味します。あなたは何を確認しましたか?あなたのアプリケーションでコンポーネントを利用できますか? (ロードされたコンポーネントの完全なリストについては、エラー・レポート・ページまたは起動時のログ出力を参照してください)そうでない場合:コンポーネント・モジュール・クラスを持っていて、モジュール用の正しいベース・パッケージを構成していますか? (編集を参照)はいの場合:マニフェストファイルにそのコンポーネントクラスへの参照が含まれていますか?はいの場合:起動時のログ出力で、失敗したコンポーネントlibについて何か言いますか? – Henning