cxfservlet maven可以用jdk1.6 吗

2013年3月 总版技术专家分月排行榜第二
2014年2月 Java大版内专家分月排行榜第一2013年8月 Java大版内专家分月排行榜第一2013年5月 Java大版内专家分月排行榜第一2013年4月 Java大版内专家分月排行榜第一2013年3月 Java大版内专家分月排行榜第一2013年2月 Java大版内专家分月排行榜第一
本帖子已过去太久远了,不再提供回复功能。Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.cxf.wsdl.WSDLManager' defined in class path resource [META-INF/cxf/cxf.xml]: Instanti nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.apache.cxf.wsdl11.WSDLManagerImpl]: Constru nested exception is java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/E:/apache-tomcat-6.0.14/webapps/webService1/WEB-INF/lib/jaxb-impl-2.1.7.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 /j2se/1.5.0/docs/guide/standards/)Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.apache.cxf.wsdl11.WSDLManagerImpl]: Constru nested exception is java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/E:/apache-tomcat-6.0.14/webapps/webService1/WEB-INF/lib/jaxb-impl-2.1.7.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 /j2se/1.5.0/docs/guide/standards/)Caused by: java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/E:/apache-tomcat-6.0.14/webapps/webService1/WEB-INF/lib/jaxb-impl-2.1.7.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/j2se/1.5.0/docs/guide/standards/)CXF框架,因为它能和Spring很好的集成。然后看了 /topic/305642 这位仁兄的文章,着手开始实现第一个简单的程序,然而,在完全按照视频要求完成后,控制台总是报错,说什么 nested exception is java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI needs 2.1 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. (See/j2se/1.5.0/docs/guide/standards/) 按字面意思就是现在使用的是JAXB 2.0的API,但是需要2.1的API。看了要求去看的网页,然后又在网上找寻了很长时间,问题终于被解决。 如果看的懂E文的话,可以去看看这篇文章http://nwangwei./Blog/cns!3A3D02B743E.entry 只要按照第一种方法就行了One way to fix this is to copy jaxws-api.jar and jaxb-api.jar into JRE endorsed directory, which is $JAVA_HOME/lib/endorsed (or$JDK_HOME/jre/lib/endorsed) 首先在JDK的lib目录下新建endorsed目录(如果存在就不需要新建了)然后把jaxws-api.jar 和jaxb-api.jar 拷贝endorsed目录下,问题解决。
或更新到jdk1.6u11就ok了!
jaxb-api.jar.zip (80.7 KB)
下载次数: 72
jaxws-api.jar.zip (33.7 KB)
下载次数: 64
最新教程周点击榜
微信扫一扫最近接手一个带有CXF的项目,在工程启动时报错Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.cxf.wsdl.WSDLManager' defined in class path resource [META-INF/cxf/cxf.xml]: Instanti nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.apache.cxf.wsdl11.WSDLManagerImpl]:nested exception is java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI needs 2.1 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. (See /j2se/1.5.0/docs/guide/standards/)java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/D:/apache-tomcat-6.0.16/webapps/were/WEB-INF/lib/jaxb-impl-2.1.17.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/j2se/1.5.0/docs/guide/standards/) 很奇怪,工程使用的JAXB 2.1,却一直提示加载到的是2.0版本。刚开始一直怀疑是项目中有地方使用到了jaxb2.0的api,查了一个多小时也没有找到。后来上网查找,原来是JDK1.6与cxf的兼容性有问题。 找到了两种解决办法1 将JDK升级到jdk1.6.0_14(jdk1.6u11) 2 将jaxws-api.jar 和 jaxb-api.jar拷贝到 $JAVA_HOME/lib/endorsed 或者 $JDK_HOME/jre/lib/endorsed ,如果没有 endorsed目录则新建一个jaxb-api.jar.zip (80.7 KB)下载次数: 91jaxws-api.jar.zip (33.7 KB)下载次数: 80
最新教程周点击榜
微信扫一扫技术杂谈(9)
JAX-WS规范是一组XML web services的 API。JAX-WS允许开发者可以选择RPC-oriented或者message-oriented
来实现自己的web services。下面我们就用JAX-WS实现简单的Web services吧。
一、Web services概念
Web services是客户端和服务端通过万维网的HTTP协议进行交互。
二、JAX-WS实现简单的Web services
2.1 建一个名为HelloServer的Web应用作为Webservice客户端
2.2 在HelloServer应用下新建一个类:
package&helloservice.&import&javax.jws.WebM&import&javax.jws.WebS&@WebService&public&class&Hello&{&&&&&private&String&message&=&new&String(&Hello,&&);&&&&&public&void&Hello()&{&&&&&}&&&&&@WebMethod&&&&&public&String&sayHello(String&name)&{&&&&&&&&&return&message&+&name&+&&.&;&&&&&&}&}&
2.3 在weblogic下发布HelloServer应用,应用名为WebRoot。
2.4 在IE里面打开http://localhost:7001/WebRoot/HelloService?wsdl
如果可以查看到wsdl的内容说明发布成功.比如:
&&&version=&1.0&&encoding=&UTF-8&&&&-&&&&-&&&&-&&xmlns:soap=&http://schemas.xmlsoap.org/wsdl/soap/&&xmlns:tns=&http://endpoint.helloservice/&&xmlns:xsd=&http://www.w3.org/2001/XMLSchema&&xmlns=&http://schemas.xmlsoap.org/wsdl/&&targetNamespace=&http://endpoint.helloservice/&&name=&HelloService&&-&&-&&&&&namespace=&http://endpoint.helloservice/&&schemaLocation=&http://localhost:7001/WebRoot/HelloService?xsd=1&&&&&&&&&&-&&name=&sayHello&&&&&name=&parameters&&element=&tns:sayHello&&&&&&&-&&name=&sayHelloResponse&&&&&name=&parameters&&element=&tns:sayHelloResponse&&&&&&&-&&name=&Hello&&-&&name=&sayHello&&&&&message=&tns:sayHello&&&&&&&message=&tns:sayHelloResponse&&&&&&&&&&-&&name=&HelloPortBinding&&type=&tns:Hello&&&&&transport=&http://schemas.xmlsoap.org/soap/http&&style=&document&&&&-&&name=&sayHello&&&&&soapAction=&&&&&-&&&&&use=&literal&&&&&&&-&&&&&use=&literal&&&&&&&&&&&&&-&&name=&HelloService&&-&&name=&HelloPort&&binding=&tns:HelloPortBinding&&&&&location=&http://localhost:7001/WebRoot/HelloService&&&&&&&&&&&&&
2.5 运行wsimport
wsimport是JDK1.6特有的,[JAVA_HOME]/bin下。
2.5.1 在E:\Program Files\PowerCmd&目录下,新建一个文件夹generate。
2.5.2 运行如下命令:
wsimport -s generate http://localhost:7001/WebRoot/HelloService?wsdl
parsing WSDL...
generating code...
说明运行成功。
2.5.3 查看generate目录,可以看到生成了JAVA文件,与generate同级的目录下,还有class文件。(这里生成的JAVA文件,客户端需要用到)
生成的HelloService.java如下:
package&helloservice.&&import&java.net.MalformedURLE&&import&java.net.URL;&&import&javax.xml.namespace.QN&&import&javax.xml.ws.S&&import&javax.xml.ws.WebE&&import&javax.xml.ws.WebServiceC&&import&javax.xml.ws.WebServiceF&&&&&&&&&@WebServiceClient(name&=&&HelloService&,&targetNamespace&=&&http://endpoint.helloservice/&,&wsdlLocation&=&&http://localhost:7001/WebRoot/HelloService?wsdl&)&&public&class&HelloService&&&&&&extends&Service&&{&&&&&&private&final&static&URL&HELLOSERVICE_WSDL_LOCATION;&&&&&&static&{&&&&&&&&&&URL&url&=&null;&&&&&&&&&&try&{&&&&&&&&&&&&&&url&=&new&URL(&http://localhost:7001/WebRoot/HelloService?wsdl&);&&&&&&&&&&}&catch&(MalformedURLException&e)&{&&&&&&&&&&&&&&e.printStackTrace();&&&&&&&&&&}&&&&&&&&&&HELLOSERVICE_WSDL_LOCATION&=&&&&&&&}&&&&&&&&public&HelloService(URL&wsdlLocation,&QName&serviceName)&{&&&&&&&&&&super(wsdlLocation,&serviceName);&&&&&&}&&&&&&&&public&HelloService()&{&&&&&&&&&&super(HELLOSERVICE_WSDL_LOCATION,&new&QName(&http://endpoint.helloservice/&,&&HelloService&));&&&&&&}&&&&&&&&&&&&&&&&@WebEndpoint(name&=&&HelloPort&)&&&&&&public&Hello&getHelloPort()&{&&&&&&&&&&return&(Hello)super.getPort(new&QName(&http://endpoint.helloservice/&,&&HelloPort&),&Hello.class);&&&&&&}&&&&&&&&&&&&&&&&&&@WebEndpoint(name&=&&HelloPort&)&&&&&&public&Hello&getHelloPort(WebServiceFeature...&features)&{&&&&&&&&&&return&(Hello)super.getPort(new&QName(&http://endpoint.helloservice/&,&&HelloPort&),&Hello.class,&features);&&&&&&}&&}&&
2.6 建一个名为HelloClient的Web应用作为WebService客户端。
2.7 将3.5.3生成的JAVA文件复制到HelloClient的src下。
2.8 新建一个HelloServlet文件,如下:
package&&import&helloservice.endpoint.HelloS&import&java.io.IOE&import&java.io.PrintW&import&javax.servlet.ServletE&import&javax.servlet.annotation.WebS&import&javax.servlet.http.HttpS&import&javax.servlet.http.HttpServletR&import&javax.servlet.http.HttpServletR&import&javax.xml.ws.WebServiceR&&@WebServlet(name&=&&HelloServlet&,&urlPatterns&=&{&&/HelloServlet&&})&public&class&HelloServlet&extends&HttpServlet&{&&&&&@WebServiceRef(wsdlLocation&=&&http://localhost:7001/WebRoot/HelloService?wsdl&)&&&&&private&HelloService&&&&&&&&&&&&&&public&HelloServlet()&{&&&&&&&&&super();&&&&&}&&&&&&&&&&&&public&void&destroy()&{&&&&&&&&&super.destroy();&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&public&void&doGet(HttpServletRequest&request,&HttpServletResponse&response)&&&&&&&&&&&&&throws&ServletException,&IOException&{&&&&&&&&&processRequest(request,&response);&&&&&}&&&&&&&&&&&&&&&&&&&public&void&doPost(HttpServletRequest&request,&HttpServletResponse&response)&&&&&&&&&&&&&throws&ServletException,&IOException&{&&&&&&&&&processRequest(request,&response);&&&&&}&&&&&&&&&&&&&&public&void&init()&throws&ServletException&{&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&&&&protected&void&processRequest(HttpServletRequest&request,&&&&&&&&&&&&&HttpServletResponse&response)&throws&ServletException,&IOException&{&&&&&&&&&response.setContentType(&text/charset=UTF-8&);&&&&&&&&&PrintWriter&out&=&response.getWriter();&&&&&&&&&try&{&&&&&&&&&&&&&out.println(&&html&lang=\&en\&&&);&&&&&&&&&&&&&out.println(&&head&&);&&&&&&&&&&&&&out.println(&&title&Servlet&HelloServlet&/title&&);&&&&&&&&&&&&&out.println(&&/head&&);&&&&&&&&&&&&&out.println(&&body&&);&&&&&&&&&&&&&out.println(&&h1&Servlet&HelloServlet&at&&&&&&&&&&&&&&&&&&&&&&&+&request.getContextPath()&+&&&/h1&&);&&&&&&&&&&&&&out.println(&&p&&&+&sayHello(&world&)&+&&&/p&&);&&&&&&&&&&&&&out.println(&&/body&&);&&&&&&&&&&&&&out.println(&&/html&&);&&&&&&&&&}&finally&{&&&&&&&&&&&&&out.close();&&&&&&&&&}&&&&&}&&&&&&&&&&&&&&&private&String&sayHello(java.lang.String&arg0)&{&&&&&&&&&helloservice.endpoint.Hello&port&=&service.getHelloPort();&&&&&&&&&return&port.sayHello(arg0);&&&&&}&}&
2.9 配置HelloClient的Web.xml,增加如下代码:
&&&&&HelloServlet&&&&&&HelloServlet&&&&&HelloServlet&&&&&webclient.HelloServlet&&&&&&&&&HelloServlet&&&&&/servlet/HelloServlet&&&&
2.10 发布HelloClient应用。
2.11 在IE录入http://localhost:7111/servlet/HelloServlet
页面内容如下说明WebService调用成功!
原文链接:/blog/1271139
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:33078次
排名:千里之外
原创:10篇
转载:28篇
(1)(4)(5)(3)(1)(6)(2)(1)(1)(5)(3)(5)(1)(1)}

我要回帖

更多关于 cxf servlet.xml 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信