Java Web 服务: Metro 简介
2010-01-08 00:00:00 来源:WEB开发网从 Java SE 6 开始,JAXB 2.x 和 JAX-WS 2.x 参考实现运行时(除了供应商扩展)成为标准 Java Runtime Environment(JRE)库的一部分。其本意是鼓励将这些技术作为 Java 标准使用,但是这也带来一个副作用:为了使用这些技术的更新的版本,可能需要更改 JRE 的安装。
示例应用程序下载文件中使用的 build.xml 将 Metro JAR 文件直接复制到服务 WAR 文件。如果使用 Java SE 5 或者 Java SE 6 JDK/JRE,并且应用程序被部署到 Apache Tomcat 6.0.20 Web 服务器,那么在作者的系统上是可行的。使用 Java SE 6 或更高版本时,如果类装载冲突(例如抛出 ClassCastException,或者未发现 com.sun.xml... 类)导致问题,那么可以使用下面的修复方法:
确保使用适合您的系统的最新 JRE 版本,因为更新可能包括更高版本的 JAXB 2.x 和 JAX-WS 2.x。
使用 java.endorsed.dirs 系统属性从 Metro lib 目录中指定一个包含 webservices-api.jar 文件的目录(仅限于 webservices-api.jar 文件,因为将其他 JAR 包括进来会导致类装载冲突)作为更新的库的源。(Tomcat 6.0.x 支持这种机制,方法是查找一个 JAVA_ENDORSED_DIRS 环境变量,并使用它作为系统属性值)。
如果以上方法仍然失败,那么在 JRE 安装目录下的 lib 目录中创建一个 endorsed 目录(如果该目录不存在的话),然后将 Metro webservices-api.jar 文件复制到该目录。
对于最后两种技巧,不需要将 Metro webservices-api.jar 包括在服务 WAR 文件中,因为它在 Web 服务器的类路径中是直接可用的。
构建和运行示例代码
在运行示例代码之前,首先需要下载和安装当前版本的 Metro(代码经过 1.5 版的测试)。另外还需要对解压的示例代码下载文件根目录中的 build.properties 文件进行编辑,将 metro-home 属性的值改为 Metro 安装目录的路径。如果要使用不同的系统或端口上的服务器进行测试,那么可能需要更改 host-name 和 host-port。
更多精彩
赞助商链接