未捕获到 servlet CXFServlet 的其中一个服务方法中抛出的异常。java.lang.IncompatibleClassChangeError
环境
JDK15
WAS6.1.0.21
前因后果
使用CXF2.2.3开发ws服务端于WAS6.1.0.21上发布。
具体报错信息
[09-11-3 14:34:59:238 CST] 00000051 ServletWrappe E?? SRVE0068E: 未捕获到 servlet CXFServlet 的其中一个服务方法中抛出的异常。抛出的异常:java.lang.IncompatibleClassChangeError
at org.apache.cxf.wsdl11.ServiceWSDLBuilder.addExtensibilityElements(ServiceWSDLBuilder.java:229)
at org.apache.cxf.wsdl11.ServiceWSDLBuilder.buildBindingInput(ServiceWSDLBuilder.java:355)
at org.apache.cxf.wsdl11.ServiceWSDLBuilder.buildBindingOperation(ServiceWSDLBuilder.java:324)
at org.apache.cxf.wsdl11.ServiceWSDLBuilder.buildBinding(ServiceWSDLBuilder.java:305)
at org.apache.cxf.wsdl11.ServiceWSDLBuilder.build(ServiceWSDLBuilder.java:193)
at org.apache.cxf.wsdl11.ServiceWSDLBuilder.build(ServiceWSDLBuilder.java:148)
at org.apache.cxf.transport.http.WSDLQueryHandler.writeResponse(WSDLQueryHandler.java:146)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:182)
at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:220)
at org.apache.cxf.transport.servlet.AbstractCXFServlet.doGet(AbstractCXFServlet.java:158)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at org.apache.cxf.transport.servlet.AbstractCXFServlet.service(AbstractCXFServlet.java:211)
解决之道
put the wsdl4j-1.6.1.jar in the $WebSphere_HOME/java/jre/lib/endorsed folder.
http://cwiki.apache.org/confluence/display/CXF20DOC/Application+Server+Specific+Configuration+Guide
参考此文章中提到了cxf在websphere上需要额外处理的地方,按照方法一修改后访问wsdl正常。