dubbo,restfull服务异常

下面是异常内容,我搜了好久,都提示缺少

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxb-provider</artifactId>
        <version>2.2.0.GA</version>
    </dependency>
版本请忽略

 

可实际上,是缺少

        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jackson-provider</artifactId>
            <version>3.0.18.Final</version>
        </dependency>
版本请忽略。

请大家小心,谨记

 

org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find MessageBodyWriter for response object of type: com.huaying.test.bean.Demo of media type: application/json
    at org.jboss.resteasy.core.ServerResponseWriter.writeNomapResponse(ServerResponseWriter.java:66) ~[resteasy-jaxrs-3.0.18.Final.jar:3.0.18.Final]
    at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse(SynchronousDispatcher.java:473) ~[resteasy-jaxrs-3.0.18.Final.jar:3.0.18.Final]
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:422) ~[resteasy-jaxrs-3.0.18.Final.jar:3.0.18.Final]
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:209) ~[resteasy-jaxrs-3.0.18.Final.jar:3.0.18.Final]
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221) ~[resteasy-jaxrs-3.0.18.Final.jar:3.0.18.Final]
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56) [resteasy-jaxrs-3.0.18.Final.jar:3.0.18.Final]
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51) [resteasy-jaxrs-3.0.18.Final.jar:3.0.18.Final]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) [tomcat-embed-core-8.0.36.jar:8.0.36]
    at com.alibaba.dubbo.rpc.protocol.rest.DubboHttpServer$RestHandler.handle(DubboHttpServer.java:86) [dubbo-2.8.4.jar:2.8.4]
    at com.alibaba.dubbo.remoting.http.servlet.DispatcherServlet.service(DispatcherServlet.java:64) [dubbo-2.8.4.jar:2.8.4]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) [tomcat-embed-core-8.0.36.jar:8.0.36]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) [tomcat-embed-core-8.0.36.jar:8.0.36]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [tomcat-embed-core-8.0.36.jar:8.0.36]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) [tomcat-embed-core-8.0.36.jar:8.0.36]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) [tomcat-embed-core-8.0.36.jar:8.0.36]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) [tomcat-embed-core-8.0.36.jar:8.0.36]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) [tomcat-embed-core-8.0.36.jar:8.0.36]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [tomcat-embed-core-8.0.36.jar:8.0.36]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) [tomcat-embed-core-8.0.36.jar:8.0.36]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528) [tomcat-embed-core-8.0.36.jar:8.0.36]
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099) [tomcat-embed-core-8.0.36.jar:8.0.36]
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670) [tomcat-embed-core-8.0.36.jar:8.0.36]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520) [tomcat-embed-core-8.0.36.jar:8.0.36]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476) [tomcat-embed-core-8.0.36.jar:8.0.36]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_79]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_79]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.0.36.jar:8.0.36]
    at java.lang.Thread.run(Thread.java:745) [na:1.7.0_79]

转载于:https://my.oschina.net/u/2764409/blog/719041

虽然所给参考引用未提及dubbo感知服务异常的方法,但在Dubbo中,可通过以下几种常见方式感知服务异常: ### 异常过滤器(Filter) 可以自定义过滤器来拦截服务调用过程,捕获并处理异常。例如: ```java import org.apache.dubbo.rpc.*; public class ExceptionFilter implements Filter { @Override public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException { try { return invoker.invoke(invocation); } catch (Exception e) { // 在这里处理异常,例如记录日志 System.err.println("Dubbo服务调用异常: " + e.getMessage()); throw new RpcException("服务调用异常", e); } } } ``` 然后在`dubbo.properties`文件中配置该过滤器: ```properties dubbo.provider.filter=exceptionFilter ``` ### 异常处理接口(ExceptionHandler) 实现`org.apache.dubbo.rpc.service.ExceptionHandler`接口,对异常进行统一处理: ```java import org.apache.dubbo.rpc.service.ExceptionHandler; public class CustomExceptionHandler implements ExceptionHandler { @Override public Object handleException(Invoker<?> invoker, Invocation invocation, Throwable exception) throws Throwable { // 处理异常 System.err.println("Dubbo服务异常处理: " + exception.getMessage()); throw exception; } } ``` 接着在配置文件中注册该异常处理器: ```xml <dubbo:application name="your-application"> <dubbo:parameter key="exception.handler" value="com.example.CustomExceptionHandler"/> </dubbo:application> ``` ### 服务接口方法的异常捕获 在服务接口的实现类中直接捕获异常: ```java import com.sitech.throwbill.easyask.service.itsm.ITSMService; public class ITSMServiceImpl implements ITSMService { @Override public void putChatMessage() { try { // 业务逻辑 } catch (Exception e) { // 处理异常 System.err.println("服务方法异常: " + e.getMessage()); } } } ``` ### 监控系统 利用Dubbo自带的监控系统或者集成第三方监控系统(如Prometheus、Grafana)来监控服务的健康状态,当出现异常时可以及时报警。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值