实现jpetstore物理上分层--续
来源:互联网 发布:2016网络语言大全 编辑:程序博客网 时间:2024/05/16 06:24
由于昨天做了一个远程调用架构的项目工程模板demo,虽然大体上可以跑起来了,但有些地方还是有异常。今天决定找出原因。
在办公室的电脑里,我只有spring1.2.9。可能跟之前的spring2.0有点差距,但在spring1.29上也有一点问题。先把这些问题搞定再说。
问题是这样的,登陆的时候老是抛出异常。见如下:
2008-3-24 1:48:26 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet remoting threw exception
com.caucho.hessian.io.HessianProtocolException: expected string at z
at com.caucho.hessian.io.HessianInput.error(HessianInput.java:1226)
at com.caucho.hessian.io.HessianInput.expect(HessianInput.java:1221)
at com.caucho.hessian.io.HessianInput.readString(HessianInput.java:543)
at com.caucho.hessian.io.BasicDeserializer.readObject(BasicDeserializer.java:166)
at com.caucho.hessian.io.HessianInput.readObject(HessianInput.java:699)
at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:181)
at org.springframework.remoting.caucho.HessianServiceExporter.handleRequest(HessianServiceExporter.java:91)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:740)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:684)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:394)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:358)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
2008-3-24 1:48:26 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet petstore threw exception
com.caucho.hessian.io.HessianProtocolException:
at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:171)
at $Proxy0.getAccount(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.remoting.caucho.HessianClientInterceptor.invoke(HessianClientInterceptor.java:115)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:169)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:169)
at $Proxy1.getAccount(Unknown Source)
at org.springframework.samples.jpetstore.web.spring.OrderFormController.formBackingObject(OrderFormController.java:45)
at org.springframework.web.servlet.mvc.AbstractFormController.getErrorsForNewForm(AbstractFormController.java:341)
at org.springframework.web.servlet.mvc.AbstractFormController.showNewForm(AbstractFormController.java:322)
at org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:262)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:740)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:684)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:394)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:348)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
严重: Servlet.service() for servlet remoting threw exception
com.caucho.hessian.io.HessianProtocolException: expected string at z
at com.caucho.hessian.io.HessianInput.error(HessianInput.java:1226)
at com.caucho.hessian.io.HessianInput.expect(HessianInput.java:1221)
at com.caucho.hessian.io.HessianInput.readString(HessianInput.java:543)
at com.caucho.hessian.io.BasicDeserializer.readObject(BasicDeserializer.java:166)
at com.caucho.hessian.io.HessianInput.readObject(HessianInput.java:699)
at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:181)
at org.springframework.remoting.caucho.HessianServiceExporter.handleRequest(HessianServiceExporter.java:91)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:740)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:684)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:394)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:358)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
2008-3-24 1:48:26 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet petstore threw exception
com.caucho.hessian.io.HessianProtocolException:
at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:171)
at $Proxy0.getAccount(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.remoting.caucho.HessianClientInterceptor.invoke(HessianClientInterceptor.java:115)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:169)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:169)
at $Proxy1.getAccount(Unknown Source)
at org.springframework.samples.jpetstore.web.spring.OrderFormController.formBackingObject(OrderFormController.java:45)
at org.springframework.web.servlet.mvc.AbstractFormController.getErrorsForNewForm(AbstractFormController.java:341)
at org.springframework.web.servlet.mvc.AbstractFormController.showNewForm(AbstractFormController.java:322)
at org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:262)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:740)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:684)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:394)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:348)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
百思不得其解!为什么总是执行getAccount(String username, String password)时候抛出异常!?
由于对aop不是很了解,只能是我猜,我猜,我猜猜!是不是代理类出现问题了?再看看源代码,发现方法getAccount被重载了。而且异常信息中有at $Proxy0.getAccount(Unknown Source)。 我想是不是把一个重命名,比如getNewAccount。
一试,果然是这样!
我想,如果存在这样的问题。我们是不是可以参考spring的org.springframework.web.servlet.DispatcherServlet设计,给每个远程业务接口分配一个serviceId,只代理一个叫远程请求分发器的接口RemoteRequestDispatcher,在服务器端RemoteRequestDispatcher的实现类负责根据serviceId将请求转发给相应的类处理。
我的文章列表>>
- 实现jpetstore物理上分层--续
- 实现jpetstore物理上分层
- 实现jpetstore物理上分层――改进
- Jpetstore阅读心得之分层结构
- Jpetstore阅读心得之分层结构
- Unity 物理分层碰撞
- jpetstore
- 在Ubuntu上实现和物理机进行文件共享
- 使用分层实现登录
- Drawable实现分层
- iBatis的JpetStore示例中MVC机制实现原理
- 用servlet写的JPetStore,实现了全部基本功能
- 物理上的基本原理
- 2.3 物理引擎(上)
- 分层有限状态机的C++实现
- 通过分层实现程序内敛
- C语言分层模式实现
- C语言分层模式实现
- showModalDialog和showModelessDialog
- StringTokenizer类的使用方法
- 破解无线网络WEP密码(下)
- Using MVC improve UI Unit Test
- NHibernate中DateTime,int,bool空值的处理方法
- 实现jpetstore物理上分层--续
- 九种经典Webshell提权
- 我的wap学习 一
- 网络安全领域最具代表性的75个安全工具软件
- [转载]最后的战役 第三次注入中国黑客联盟
- IO常见操作汇总三
- embed用法
- NetBeans 6.0 提高生产力之Java代码编辑器
- 手机信号劫持