2013-07-05 58 views
0

我正在爲我的應用程序使用ZK框架版本6.5.2。現在我想通過使用Zest將RESTful集成到它。問題是,最新版本的Zest是1.1.0,它取決於zcommon-5.0.0。因此,這種依賴性(zcommon-5.0.0)被複制,我排除它從我的POM文件,像這樣:Zest 1.1.0無法與ZK集成6.5.2

<dependency> 
     <groupId>org.zkoss.zest</groupId> 
     <artifactId>zest</artifactId> 
     <version>1.1.0</version> 
     <exclusions> 
     <exclusion> 
      <groupId>org.zkoss.common</groupId> 
      <artifactId>zcommon</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>org.zkoss.common</groupId> 
      <artifactId>zweb</artifactId> 
     </exclusion> 
     </exclusions> 
    </dependency> 

結果熱情現在取決於zcommon-6.5.2。當我開始我的應用程序,發生錯誤:

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to org.zkoss.xel.taglib.FunctionDefinition 
    at org.zkoss.xel.taglib.Taglibs.getFunctionMapper(Taglibs.java:150) 
    at org.zkoss.xel.taglib.Taglibs.getFunctionMapper(Taglibs.java:109) 
    at org.zkoss.zest.sys.impl.ParserImpl.parse(ParserImpl.java:97) 
    at org.zkoss.zest.sys.impl.ParserImpl.parse(ParserImpl.java:54) 
    at org.zkoss.zest.sys.ZestManager.loadConfiguration(ZestManager.java:98) 
    at org.zkoss.zest.sys.ZestManager.init(ZestManager.java:70) 
    at org.zkoss.zest.sys.ZestFilter.init(ZestFilter.java:74) 

這裏是我的web.xml:

<filter> 
    <filter-name>zest</filter-name> 
    <filter-class>org.zkoss.zest.sys.ZestFilter</filter-class> 
    <!-- specifies the class name of the ZEST manager to handle actions Default: org.zkoss.zest.sys.ZestManager --> 
    <init-param> 
     <param-name>manager-class</param-name> 
     <param-value>org.zkoss.zest.sys.ZestManager</param-value> 
    </init-param> 

    <!-- specifies the class name of the parser used to parse the configuration file (WEB-INF/zest.xml). Default: org.zkoss.zest.sys.impl.ParserImpl --> 
    <init-param> 
     <param-name>parser-class</param-name> 
     <param-value>org.zkoss.zest.sys.impl.ParserImpl</param-value> 
    </init-param> 

    </filter> 

這裏是在zest.xml休息的定義:

<?xml version="1.0" encoding="UTF-8"?> 
<zest> 

    <xel-method prefix="c" name="toMethodName" 
      class="com.myapp.view.RestAction" 
     signature="java.lang.String toMethodName(java.lang.String)"/> 
    <action path="/rest" method="${c:toMethodName(request.method)}" 
    class="com.myapp.view.RestAction"> 
     <result>/WEB-INF/index.zul</result> 
    </action> 
</zest> 

我有比較了這兩個文件Taglibs.java在5.0.0版本和zcommon 6.5.2版本中的源代碼,並意識到它們有很多不同之處。我認爲造成上述問題的原因(初始化過程從5.0.5更改爲6.5.2)。你能幫我解決這個問題嗎,這樣我就可以將zest整合到我的ZK應用程序中了嗎?非常感謝。

回答