Flex Blazeds Java NoSuchMethodException - PullRequest
       37

Flex Blazeds Java NoSuchMethodException

0 голосов
/ 29 августа 2010

У нас есть приложение Flex-BlazeDS-Spring-JMS.Иногда возникает проблема с Blazeds: NoSuchMethodException.Он не может найти сервис Java.Странная проблема с этим, это не случается весь элемент ... 1 раз, когда он проходит и возвращает результат, 2-й раз, когда он терпит неудачу, 3-й раз, неудача и так далее.Также не все методы терпят неудачу, только 2 вызова методов терпят неудачу.

Метод Flex:

patientModel.patientRequest.startIndex=1;
patientModel.patientRequest.numberOfItems=10;
patientModel.patientRequest.medicareId=null;
patientModel.patientRequest.dateOfBirth = DateField.stringToDate("04/21/1982","MM/DD/YYYY");
//patientModel.patientRequest.dateOfBirth = new Date();
patientModel.patientRequest.lastName="null;
patientModel.patientRequest.firstName="leo";

return service.getPatientDataMeasurements(patientModel.patientRequest);

Метод Java:

public PatientDataMeasurementCollectionList getPatientDataMeasurements(
   PatientDataRequest request);

Ответ XML:

<ns1:CMSRemoteResponse xmlns:ns1="http://cms.hhs.gov/common/remoting/schema"><CMSDASOutboundHeader><ResponseCMSHeader><HeaderVersion>1.0</HeaderVersion><ServiceName>TestService</ServiceName><ServiceVersion>1.0</ServiceVersion><ServiceType>getPatientDataMeasurements</ServiceType><CompletionCd>7</CompletionCd><LocationCd>3</LocationCd><ComponentCd>2</ComponentCd><Errors><Error><ErrorCode>XXX</ErrorCode><ErrorType>NoSuchMethodException</ErrorType><ErrorMessage>$Proxy17.getPatientDataMeasurements(gov.hhs.cms.ehrds.datacollection.model.PatientDataRequest)</ErrorMessage></Error></Errors></ResponseCMSHeader><ExecutedCMSHeader><HeaderVersion>1.0</HeaderVersion><ServiceName>TestService</ServiceName><ServiceVersion>1.0</ServiceVersion><ServiceType>getPatientDataMeasurements</ServiceType></ExecutedCMSHeader><NewCMSHeader><HeaderVersion>1.0</HeaderVersion><ServiceName>TestService</ServiceName><ServiceVersion>1.0</ServiceVersion><ServiceType>getPatientDataMeasurements</ServiceType></NewCMSHeader></CMSDASOutboundHeader><InboundReqeust><UserInfo><UserId>test123</UserId><RoleNames/></UserInfo><ns1:PatientDataRequest xmlns:ns1="http://cms.hhs.gov/ehrds/datacollection/model"><StartIndex>1</StartIndex><NumberOfItems>10</NumberOfItems><MedicareId>AB123456789</MedicareId><DateOfBirth>2010-08-29T02:55:08.562Z</DateOfBirth><FirstName>leo</FirstName><LastName>cap</LastName></ns1:PatientDataRequest></InboundReqeust><CMSDASResponseBody/></ns1:CMSRemoteResponse>

Исключение:

BlazeDS Error Detectedorg.springframework.remoting.RemoteInvocationFailureException: Invocation of method [public abstract gov.hhs.cms.ehrds.datacollection.model.PatientDataMeasurementCollectionList gov.hhs.cms.ebs.ehrds.datacollection.service.PatientDataMeasurementService.getPatientDataMeasurements(gov.hhs.cms.ehrds.datacollection.model.PatientDataRequest)] failed in JMS invoker remote service at queue [queue://DS1CN3009/EHR.DATACOLLECTION.PATIENT.REQUEST.1]; nested exception is gov.hhs.cms.common.exception.CodedException: $Proxy17.getPatientDataMeasurements(gov.hhs.cms.ehrds.datacollection.model.PatientDataRequest)
[8/28/10 22:55:08:828 EDT] 00000037 ExceptionTran E com.newwave.ExceptionLogger translate BlazeDS Error Detected
                                 org.springframework.remoting.RemoteInvocationFailureException: Invocation of method [public abstract gov.hhs.cms.ehrds.datacollection.model.PatientDataMeasurementCollectionList gov.hhs.cms.ebs.ehrds.datacollection.service.PatientDataMeasurementService.getPatientDataMeasurements(gov.hhs.cms.ehrds.datacollection.model.PatientDataRequest)] failed in JMS invoker remote service at queue [queue://DS1CN3009/EHR.DATACOLLECTION.PATIENT.REQUEST.1]; nested exception is gov.hhs.cms.common.exception.CodedException: $Proxy17.getPatientDataMeasurements(gov.hhs.cms.ehrds.datacollection.model.PatientDataRequest)
 at org.springframework.jms.remoting.JmsInvokerClientInterceptor.invoke(JmsInvokerClientInterceptor.java:211)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
 at $Proxy21.getPatientDataMeasurements(Unknown Source)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:618)
 at flex.messaging.services.remoting.adapters.JavaAdapter.invoke(JavaAdapter.java:421)
 at flex.messaging.services.RemotingService.serviceMessage(RemotingService.java:183)
 at flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:1503)
 at flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:884)
 at flex.messaging.endpoints.AbstractEndpoint$$FastClassByCGLIB$$1a3ef066.invoke(<generated>)
 at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
 at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:692)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
 at org.springframework.flex.core.MessageInterceptionAdvice.invoke(MessageInterceptionAdvice.java:66)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
 at org.springframework.aop.framework.adapter.ThrowsAdviceInterceptor.invoke(ThrowsAdviceInterceptor.java:124)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
 at org.springframework.aop.framework.Cglib2AopProxy$FixedChainStaticTargetInterceptor.intercept(Cglib2AopProxy.java:576)
 at flex.messaging.endpoints.AMFEndpoint$$EnhancerByCGLIB$$f3ce9468.serviceMessage(<generated>)
 at flex.messaging.endpoints.amf.MessageBrokerFilter.invoke(MessageBrokerFilter.java:121)
 at flex.messaging.endpoints.amf.LegacyFilter.invoke(LegacyFilter.java:158)
 at flex.messaging.endpoints.amf.SessionFilter.invoke(SessionFilter.java:44)
 at flex.messaging.endpoints.amf.BatchProcessFilter.invoke(BatchProcessFilter.java:67)
 at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:146)
 at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:278)
 at flex.messaging.endpoints.AMFEndpoint$$EnhancerByCGLIB$$f3ce9468.service(<generated>)
 at org.springframework.flex.servlet.MessageBrokerHandlerAdapter.handle(MessageBrokerHandlerAdapter.java:101)
 at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
 at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
 at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
 at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1146)
 at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:592)
 at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:525)
 at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
 at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:751)
 at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1478)
 at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:126)
 at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)
 at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387)
 at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:267)
 at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
 at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
 at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
 at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
 at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
 at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
 at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:196)
 at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:751)
 at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881)
 at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)
Caused by: gov.hhs.cms.common.exception.CodedException: $Proxy17.getPatientDataMeasurements(gov.hhs.cms.ehrds.datacollection.model.PatientDataRequest)
 at gov.hhs.cms.common.remoting.jms.JibxClientRemoteMessageConverter.fromMessage(JibxClientRemoteMessageConverter.java:160)
 at org.springframework.jms.remoting.JmsInvokerClientInterceptor.extractInvocationResult(JmsInvokerClientInterceptor.java:396)
 at org.springframework.jms.remoting.JmsInvokerClientInterceptor.executeRequest(JmsInvokerClientInterceptor.java:249)
 at org.springframework.jms.remoting.JmsInvokerClientInterceptor.invoke(JmsInvokerClientInterceptor.java:198)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
 at $Proxy21.getPatientDataMeasurements(Unknown Source)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:618)
 at flex.messaging.services.remoting.adapters.JavaAdapter.invoke(JavaAdapter.java:421)
 at flex.messaging.services.RemotingService.serviceMessage(RemotingService.java:183)
 at flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:1503)
 at flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:884)
 at flex.messaging.endpoints.AbstractEndpoint$$FastClassByCGLIB$$1a3ef066.invoke(<generated>)
 at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
 at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:692)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
 at org.springframework.flex.core.MessageInterceptionAdvice.invoke(MessageInterceptionAdvice.java:66)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
 at org.springframework.aop.framework.adapter.ThrowsAdviceInterceptor.invoke(ThrowsAdviceInterceptor.java:124)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
 at org.springframework.aop.framework.Cglib2AopProxy$FixedChainStaticTargetInterceptor.intercept(Cglib2AopProxy.java:576)
 at flex.messaging.endpoints.AMFEndpoint$$EnhancerByCGLIB$$f3ce9468.serviceMessage(<generated>)
 at flex.messaging.endpoints.amf.MessageBrokerFilter.invoke(MessageBrokerFilter.java:121)
 at flex.messaging.endpoints.amf.LegacyFilter.invoke(LegacyFilter.java:158)
 at flex.messaging.endpoints.amf.SessionFilter.invoke(SessionFilter.java:44)
 at flex.messaging.endpoints.amf.BatchProcessFilter.invoke(BatchProcessFilter.java:67)
 at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:146)
 at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:278)
 at flex.messaging.endpoints.AMFEndpoint$$EnhancerByCGLIB$$f3ce9468.service(<generated>)
 at org.springframework.flex.servlet.MessageBrokerHandlerAdapter.handle(MessageBrokerHandlerAdapter.java:101)
 at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
 at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
 at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
 at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1146)
 at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:592)
 at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:525)
 at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
 at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:751)
 at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1478)
 at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:126)
 at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)
 at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387)
 at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:267)
 at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
 at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
 at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
 at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
 at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
 at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
 at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:196)
 at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:751)
 at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881)
 at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)
 at org.springframework.remoting.support.RemoteInvocationUtils.fillInClientStackTraceIfPossible(RemoteInvocationUtils.java:47)
 at org.springframework.remoting.support.RemoteInvocationResult.recreate(RemoteInvocationResult.java:115)
 at org.springframework.jms.remoting.JmsInvokerClientInterceptor.recreateRemoteInvocationResult(JmsInvokerClientInterceptor.java:429)
 at org.springframework.jms.remoting.JmsInvokerClientInterceptor.invoke(JmsInvokerClientInterceptor.java:204)
 ... 55 more

Мы не уверены, является ли это ошибкой Flex - BlazeDS или проблемой удаленного взаимодействия.Цените это очень много, если кто-то может помочь в этом вопросе.

Спасибо

Хариш

Ответы [ 2 ]

0 голосов
/ 31 августа 2010

Спасибо за ваш ответ.Но мы решили проблему ... Я дал 1 очередь для 2 служб, и она обслуживала один раз нужный сервис, а в следующий раз обратилась к неправильному, и не смогла найти метод ... в любом случае, он решен:)

0 голосов
/ 29 августа 2010

Я не знаю много о задействованных технологиях (кроме Java), но возможно ли, что некоторые вызовы используют разные загрузчики классов? Объекты одного типа, но чьи классы загружаются разными загрузчиками классов, считаются несовместимыми, и что может привести к ошибке такого метода.

...