快速业务通道

Java Web服务: Metro简介 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
et</servlet- class>    <load-on-startup>1</load-on-startup>   </servlet>   <servlet-mapping>    <servlet-name>MetroLibraryPort</servlet-name>    <url-pattern>/</url-pattern>   </servlet-mapping>   <session-config>    <session-timeout>60</session-timeout>   </session-config> </web-app>

如果以前开发过 Java Web 应用程序,那么 清单 1 WEB-INF/web.xml 文件看上去应该很熟悉(至少 结构上是这样)。相应的条目告诉 servlet 引擎将 WAR 文件部署到哪里,以便使用 com.sun.xml.ws.transport.http.servlet.WSServletContextListener 类作为 servlet 上下文事件的侦 听器,另外使用 com.sun.xml.ws.transport.http.servlet.WSServlet 类作为实际的 servlet。这两个 类是 Sun 的 Metro 栈特有的,要使用 Metro 必须引用这两个类。servlet 被配置为接收所有传入该 Web 应用程序的请求(通过 <url-pattern>/</url-pattern> 条目)。

清单 1 WEB-INF/web.xml 文件本身只是配置 servlet 引擎,让它使用 Metro 提供的侦听器和 servlet。另有一个文件 WEB-INF/sun-jaxws.xml(清单 2所示)用于配置 Metro,使其将 servlet 接收 的请求路由到服务实现代码。

清单 2. 示例应用程序 sun-jaxws.xml

<endpoints  xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">    <endpoint name="MetroLibraryPort"      implementation="com.sosnoski.ws.library.metro.MetroLibraryImpl"      url-pattern="/"      wsdl-location="WEB-INF/wsdl/library.wsdl"/> </endpoints>

清单 2 WEB-INF/sun-jaxws.xml 文件非常简单,只有一个端点定义,其中包括端口名、实现类、请求 的匹配模式以及 WSDL 文档位置。WSDL 文档位置是端点定义中唯一的可选项。如果在 sun-jaxws.xml 文 件中不指定服务端点的 WSDL 文档,Metro 会在运行时自动生成一个 WSDL 文档。

Java Web服务: Metro简介(3)

时间:2011-07-25 IBM Dennis Sosnoski

捆绑带来的问题

从 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 文件复制到该目录。

对于最后

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号