近日 Apache Wicket 项目发布了 1.4 版,这是一个开源、面向组件的 Java Web 应用框架,同时该版本对 JDK 的要求也首次提升到了 Java 5+,这样就可以充分利用 Java 5 的新特性如泛型等来增强 API 的类型安全性。
尽管 1.4 版中有几个重大的变化,但其与 1.3 的兼容性还是非常不错的,因此我们可以将应用平滑地移植到最新版:
纵观该版本的各种变化,以下列出的是最重要的一些内容:
- 泛型的 IModel 接口及其实现增强了 Wicket 应用的类型安全性。
- 将 Component#getModel() 及 Component#setModel() 更名为 getDefaultModel() 和 setDefaultModel() 以便更好地支持泛型模型。
- 整合了 Spring module(wicket-spring-annot 已被废弃,现在只需 wicket-spring 了)。
- 修改了很多 API 以更好地利用 Java 5 的新特性。
- 现在 Wicket jars 与元数据打包在一起成为 OSGi bundle 了。
现在可以手工下载该版本,也可以通过 Maven 获取:
复制代码
<dependency> <groupId>org.apache.wicket</groupId> <artifactId>wicket</artifactId> <version>1.4.0</version> </dependency>
Arun Gupta 介绍了其升级到 1.4 的过程:
你可能会遇到下面这个错误:```
2009-08-05 05:58:49.387::INFO: No Transaction manager found - if your webapp requires one, please configure one.
ERROR - DiskPageStore - Couldn’t load DiskPageStore index from file /Users/arungupta/workspaces/runner~subversion/wicket/runner/target/work/wicket.runner-filestore/DiskPageStoreIndex.
java.lang.ClassNotFoundException: org.apache.wicket.util.concurrent.ConcurrentHashMap
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:319)复制代码
幸好,解决办法不难而且也很直观。不要运行“mvn jetty:run“,请运行下面这个命令:``` mvn clean jetty:run”clean“会清除掉项目中对旧版 Wicket jars 的引用!
Mystic Coders 也为其教程” Wicket 5 日通“发布了一个 1.4 版的升级指南。
大家可以从 InfoQ 上获取关于 Wicket及其他 **框架 ** 的更多信息!
查看英文原文: Apache Wicket 1.4 Released
评论