您的位置:首页 > 编程语言 > Java开发

(六)Java Ee平台上实现Web服务及多种客户端实例-小结

2008-04-09 23:02 513 查看
(六)Java Ee平台上实现Web服务及多种客户端实例-小结问题解决在开发过程中,可能会遇到以下问题:1.错误信息:
javax.xml.ws.WebServiceException: Failed to access the WSDL at: http://localhost:8080/StockQuoteWS/StockQuoteService?WSDL. It failed with:
Connection refused: connect.
at Connection refused: connect.
at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(RuntimeWSDLParser.java:136)
at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:122)
at com.sun.xml.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:226)
......
原因及解决方法:Web服务需要部署在服务器上,上面的错误信息往往是因为没有启动应用服务器。在NetBeans "运行环境"tab中,"服务器"->"Sun Application Server 9" -> 启动。
2. 错误信息
java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/C:/Java/netbeans-5.5.1/ide7/modules/ext/jaxws21/jaxb-impl.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.1 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. (See http://java.sun.com/j2se/1.5.0/docs/guide/standards/) at com.sun.xml.bind.v2.model.impl.ModelBuilder.(ModelBuilder.java:136) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:406) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:270) ......
原因及解决方法:这种错误通常发生在Java SE 6(JDK 6)平台上,因为Java SE 6(JDK 6)缺省自带的是 JAXB 2.0 和 JAX-WS 2.0.最简单的办法是把NetBeans 5.5.1 中自带的JAXB 2.1 和 JAX-WS 2.1 拷贝到Java SE 6(JDK 6)平台中去.具体做法如下,在Java 平台的JRE的lib目录下建立endorsed目录,比如"C:/Java/jdk1.6.0/jre/lib/endorsed",然后在NetBeans 5.5.1 中找到jaxb-api.jar和jaxws-api.jar两个文件,比如在目录"C:/Java/netbeans-5.5.1/ide7/modules/ext/jaxws21/api"下.把这两个jar文件从NetBeans 5.5.1中拷贝到 C:/Java/jdk1.6.0/jre/lib/endorsed 中.
Java Ee平台上实现Web[u]服务及多种客户端实例结构图[/u]



结构图可以更清楚地了解前面实例中各个部件之间的关系。
JAVA EE 5平台上实现Web服务实例(模拟股票行情机)用蓝色表示。瘦客户端(thin client)用黄色表示胖客户端(rich client)用绿色表示移动客户端(mobile client)用红色表示

参考:
http://uddi.org/
http://www.w3.org/TR/ws-arch/
http://zh.wikipedia.org/
http://www.netbeans.org/
http://www.java.net/

作者简介:李力目前在Sun Microsystems任高级软件工程师,有近十年软件开发经验,曾就职于AIG,CA等公司,任软件工程师及系统分析员等职位,在J2EE领域有丰富的实际开发经验。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: