Java Web服务: Metro简介 - 编程入门网
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
清单 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |