`
wxb880114
  • 浏览: 678742 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

CXF异常处理

 
阅读更多
java.lang.NoClassDefFoundError: javax/ws/rs/NotFoundException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
at java.lang.Class.getDeclaredMethods(Class.java:1791)
at org.springframework.core.type.StandardAnnotationMetadata.hasAnnotatedMethods(StandardAnnotationMetadata.java:136)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.checkConfigurationClassCandidate(ConfigurationClassBeanDefinitionReader.java:318)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:172)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:142)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:599)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:407)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassNotFoundException: javax.ws.rs.NotFoundException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
... 22 more

对,是版本问题
JAX-RS的REST风格的Web服务的Java API是Java编程语言的API提供支持创建Web服务,根据代表性状态传输(REST)的建筑风格。

CXF支持REST风格的Web服务:JAX-RS2.0(JSR-339)和JAX-RS1.1(JSR-311)的Java API。

CXF2.7.0支持JAX-RS2.0(不包括客户端API现在 - 引入的新功能,但注意CXF客户端API已经更新,支持新的过滤器,拦截器,异常类和响应API,再加上客户端的异步调用API)。

CXF2.6.x版本,在2.5.x,2.4.x和2.3.x的支持JSR-311 API1.1和JAX-RS1.1 TCK符合。
JAX-RS1.1规范可以在这里找到

CXF2.2.x的支持JSR-311 API1.0和JAX-RS1.0 TCK。标准。
JAX-RS1.0规范可以在这里找到

CXF的2.1.x支持JSR-311 API0.8。

JAX-RS的相关演示位于下样品/ jax_rs目录。

本文档将参考JAX-RS2.0(JSR-339)API。

优秀的JAX-RS JIRA问题可以在这里找到。

2.警告: javax.ws.rs.NotFoundException
at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:169)
at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:99)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:223)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:203)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137)
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:158)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:243)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:168)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:219)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
cxf 遇到这个问题,
问题出现的场景, 因项目要求,需要将Soap服务和Rest服务统一发布,
故在Spring的配置文件applicationContext.xml中配置如下:
  <bean id="inMessageInterceptor" class="org.apache.cxf.interceptor.LoggingInInterceptor" />
	<bean id="outMessageInterceptor" class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
   
   <jaxws:endpoint id="helloService" implementor="#resthelloworld"
		address="/HelloWorld" />
	
	<jaxrs:server id="rest_HelloWorld" address="/">
		<jaxrs:inInterceptors>
		   <ref bean="inMessageInterceptor"/>
		</jaxrs:inInterceptors>
		<jaxrs:outInterceptors>
		    <ref bean="outMessageInterceptor"/>
		</jaxrs:outInterceptors>
		<jaxrs:serviceBeans>
			<ref bean="resthelloworld" />
		</jaxrs:serviceBeans>
		<jaxrs:extensionMappings>
			<entry key="json" value="application/json" />
			<entry key="xml" value="application/xml" />
		</jaxrs:extensionMappings>
		<jaxrs:languageMappings>
			<entry key="en" value="en-gb" />
		</jaxrs:languageMappings>
	</jaxrs:server>
    
    <bean id="resthelloworld" class="rest.RestHelloWorldImpl"/>



在运行过程中,jax-ws与jax-rs只能二者选一,若同时选择就报如上错误。
分享到:
评论
1 楼 yiran0314 2014-03-14  
您好 关于这个问题能描述得更详细一点吗?

相关推荐

    CXF处理不规则SOAP message(转)

    当遇到不规则SOAP消息时,开发者可能需要深入理解CXF的工作原理,包括其消息模型、绑定层以及异常处理机制,以便正确地捕获和处理问题。 描述中提到的博客链接(https://huiseyiyu.iteye.com/blog/1172161)可能是...

    CXF源码:CXF_Spring源码

    5. **异常处理** Spring可以帮助统一处理CXF服务抛出的异常,通过配置异常处理器,将服务层的异常转化为符合Web服务标准的响应。 6. **测试** Spring Test库可以配合CXF测试框架,对服务进行单元测试和集成测试...

    cxf-core-3.2.4_cxf_源码

    例如,我们可以查看消息的编码和解码过程,了解CXF如何处理异常,或者研究CXF如何加载和解析WSDL文件。 总之,Apache CXF是一个强大且灵活的Web服务框架,其源码提供了丰富的学习资源,涵盖了Web服务的各种层面。...

    apache-cxf-3.5.0.zip

    - **强大的异常处理**: CXF提供了一套完整的异常处理机制,可以帮助开发者更好地处理服务调用中的异常情况。 5. **部署与运行** - 在服务器环境中,可以使用CXF的Servlet或Jetty容器来部署Web服务,通过修改`etc/...

    CXF

    通过这个链接,开发者可以获取更深入的实践经验和技巧,例如如何配置CXF服务,如何处理异常,或者如何优化性能。 **源码分析** CXF的源码是开放的,这为开发者提供了一个深入理解其工作原理的机会。通过阅读源码,...

    cxf教程(word)

    7. **异常处理**:学习如何在CXF中处理服务调用过程中可能出现的异常,并提供合适的错误信息。 8. **性能优化**:探讨CXF的缓存机制、数据绑定优化、以及如何调整CXF配置来提高服务性能。 9. **测试与调试**:掌握...

    Spring CXF Restful 实例

    10. **异常处理**:通过自定义异常处理器,我们可以规范化REST服务的错误响应,提供统一的错误信息格式。 通过这个“Spring CXF Restful实例”,开发者将学习到如何在Spring环境中使用CXF构建高效、可维护的RESTful...

    用cxf开发webservice

    一旦服务被定义,CXF将自动处理服务的发布、调用以及异常处理等细节。 总结来说,Apache CXF提供了一整套工具和框架,使得开发和部署Web服务变得简单易行。它支持多种Web服务标准和模型,允许灵活的消息格式和协议...

    cxf WebService

    CXF提供了一套完善的异常处理机制,允许开发者自定义错误处理策略,确保服务的稳定性和健壮性。 8. **性能优化**:对于生产环境的Web服务,性能优化是关键。CXF提供了缓存、数据压缩、多线程处理等多种优化手段,...

    CXF-JAXB包的处理问题

    在处理CXF与JAXB的集成时,有时会遇到版本冲突的问题,特别是在处理Web服务时,这些问题可能会导致应用程序运行异常。 本文将深入探讨如何解决CXF与JAXB版本冲突,以及如何处理Java.lang.LinkageError,特别是当...

    CXF WebService带有拦截器

    在CXF中,拦截器是处理消息生命周期中的关键组件,它们可以在消息发送前、接收后、发送后以及接收前执行自定义逻辑。这使得我们可以在不修改原有业务代码的情况下,轻松地添加额外的功能,如日志记录、安全检查或...

    cxf-3.1.6的所需要的包

    5. **错误处理和日志记录**:CXF提供了丰富的异常处理机制和详细的日志记录,便于开发者诊断问题和调试代码。 6. **国际化和本地化**:CXF支持多语言环境,可以方便地处理不同地区的服务请求。 7. **测试支持**:...

    CXF实例源代码(客户端)

    5. **异常处理**:在调用Web服务时,可能会遇到各种异常,如网络问题、服务不可用等。因此,适当的异常处理机制是必要的,通常通过try-catch语句来捕获和处理这些异常。 6. **测试和调试**:CXF提供了丰富的测试...

    验证客户端源码cxf

    7. **异常处理**: - 源码中会包含处理服务调用异常的部分,例如,处理网络错误、服务不可用、业务逻辑错误等。 8. **日志和调试**: - CXF客户端源码可能使用了日志框架(如Log4j或SLF4J),以便记录服务调用的...

    cxf-3.0.0 zip

    9. **错误处理和日志记录**:CXF提供了一套完整的错误处理机制,包括异常映射和日志记录,方便开发者调试和排查问题。 10. **性能优化**:CXF提供了缓存、流处理和异步处理等功能,以提高服务的性能和响应速度。 ...

    在WebSphere发布CXF注意事项

    7. **错误处理和异常捕获**:WebSphere对异常处理有自己的规则,确保CXF的服务异常能够正确地被WebSphere捕捉并处理。 8. **性能优化**:根据应用的需求,可能需要调整CXF和WebSphere的性能设置,例如线程池大小、...

    CXF整合Spring步骤

    在实际项目中,你可能还需要考虑安全性、日志记录、异常处理等高级话题。例如,可以使用 Spring Security 进行认证和授权,通过 AOP 实现统一的日志记录,或者自定义 CXF 异常处理器。 总的来说,CXF 与 Spring 的...

    CXF客户端启动过程

    6. **异常处理**: - 如果在通信过程中出现任何问题,CXF会捕获并处理异常,提供相应的错误信息给调用者。 - 对于HTTP错误状态码,CXF会将其转换为特定的Web服务异常。 7. **安全机制**: - 如果服务配置了安全...

    spring+cxf 整合jar包

    6. **异常处理**:Spring和CXF结合,可以统一处理服务调用中的异常,提供更优雅的错误处理机制。 7. **测试支持**:Spring的测试框架可以很方便地对整合后的CXF服务进行单元测试和集成测试,确保服务的正确性。 在...

Global site tag (gtag.js) - Google Analytics